当前位置: 首页>>代码示例>>Java>>正文


Java Renderer.getTrackType方法代码示例

本文整理汇总了Java中com.google.android.exoplayer2.Renderer.getTrackType方法的典型用法代码示例。如果您正苦于以下问题:Java Renderer.getTrackType方法的具体用法?Java Renderer.getTrackType怎么用?Java Renderer.getTrackType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.google.android.exoplayer2.Renderer的用法示例。


在下文中一共展示了Renderer.getTrackType方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: setVideoSurfaceInternal

import com.google.android.exoplayer2.Renderer; //导入方法依赖的package包/类
private void setVideoSurfaceInternal(Surface surface, boolean ownsSurface) {
  // Note: We don't turn this method into a no-op if the surface is being replaced with itself
  // so as to ensure onRenderedFirstFrame callbacks are still called in this case.
  ExoPlayerMessage[] messages = new ExoPlayerMessage[videoRendererCount];
  int count = 0;
  for (Renderer renderer : renderers) {
    if (renderer.getTrackType() == C.TRACK_TYPE_VIDEO) {
      messages[count++] = new ExoPlayerMessage(renderer, C.MSG_SET_SURFACE, surface);
    }
  }
  if (this.surface != null && this.surface != surface) {
    // We're replacing a surface. Block to ensure that it's not accessed after the method returns.
    player.blockingSendMessages(messages);
    // If we created the previous surface, we are responsible for releasing it.
    if (this.ownsSurface) {
      this.surface.release();
    }
  } else {
    player.sendMessages(messages);
  }
  this.surface = surface;
  this.ownsSurface = ownsSurface;
}
 
开发者ID:CarGuo,项目名称:GSYVideoPlayer,代码行数:24,代码来源:SimpleExoPlayer2.java

示例2: sendMessage

import com.google.android.exoplayer2.Renderer; //导入方法依赖的package包/类
protected void sendMessage(int renderType, int messageType, Object message, boolean blocking) {
    if (renderers.isEmpty()) {
        return;
    }

    List<ExoPlayer.ExoPlayerMessage> messages = new ArrayList<>();
    for (Renderer renderer : renderers) {
        if (renderer.getTrackType() == renderType) {
            messages.add(new ExoPlayer.ExoPlayerMessage(renderer, messageType, message));
        }
    }

    if (blocking) {
        player.blockingSendMessages(messages.toArray(new ExoPlayer.ExoPlayerMessage[messages.size()]));
    } else {
        player.sendMessages(messages.toArray(new ExoPlayer.ExoPlayerMessage[messages.size()]));
    }
}
 
开发者ID:brianwernick,项目名称:ExoMedia,代码行数:19,代码来源:ExoMediaPlayer.java

示例3: SimpleExoPlayer2

import com.google.android.exoplayer2.Renderer; //导入方法依赖的package包/类
public SimpleExoPlayer2(RenderersFactory renderersFactory, TrackSelector trackSelector,
                           LoadControl loadControl) {
  componentListener = new ComponentListener();
  videoListeners = new CopyOnWriteArraySet<>();
  textOutputs = new CopyOnWriteArraySet<>();
  metadataOutputs = new CopyOnWriteArraySet<>();
  Looper eventLooper = Looper.myLooper() != null ? Looper.myLooper() : Looper.getMainLooper();
  Handler eventHandler = new Handler(eventLooper);
  renderers = renderersFactory.createRenderers(eventHandler, componentListener, componentListener,
      componentListener, componentListener);

  // Obtain counts of video and audio renderers.
  int videoRendererCount = 0;
  int audioRendererCount = 0;
  for (Renderer renderer : renderers) {
    switch (renderer.getTrackType()) {
      case C.TRACK_TYPE_VIDEO:
        videoRendererCount++;
        break;
      case C.TRACK_TYPE_AUDIO:
        audioRendererCount++;
        break;
    }
  }
  this.videoRendererCount = videoRendererCount;
  this.audioRendererCount = audioRendererCount;

  // Set initial values.
  audioVolume = 1;
  audioSessionId = C.AUDIO_SESSION_ID_UNSET;
  audioAttributes = AudioAttributes.DEFAULT;
  videoScalingMode = C.VIDEO_SCALING_MODE_DEFAULT;

  // Build the player and associated objects.
  player = createExoPlayerImpl(renderers, trackSelector, loadControl);
}
 
开发者ID:CarGuo,项目名称:GSYVideoPlayer,代码行数:37,代码来源:SimpleExoPlayer2.java

示例4: setVideoScalingMode

import com.google.android.exoplayer2.Renderer; //导入方法依赖的package包/类
public void setVideoScalingMode(@C.VideoScalingMode int videoScalingMode) {
  this.videoScalingMode = videoScalingMode;
  ExoPlayerMessage[] messages = new ExoPlayerMessage[videoRendererCount];
  int count = 0;
  for (Renderer renderer : renderers) {
    if (renderer.getTrackType() == C.TRACK_TYPE_VIDEO) {
      messages[count++] = new ExoPlayerMessage(renderer, C.MSG_SET_SCALING_MODE,
          videoScalingMode);
    }
  }
  player.sendMessages(messages);
}
 
开发者ID:CarGuo,项目名称:GSYVideoPlayer,代码行数:13,代码来源:SimpleExoPlayer2.java

示例5: setAudioAttributes

import com.google.android.exoplayer2.Renderer; //导入方法依赖的package包/类
public void setAudioAttributes(AudioAttributes audioAttributes) {
  this.audioAttributes = audioAttributes;
  ExoPlayerMessage[] messages = new ExoPlayerMessage[audioRendererCount];
  int count = 0;
  for (Renderer renderer : renderers) {
    if (renderer.getTrackType() == C.TRACK_TYPE_AUDIO) {
      messages[count++] = new ExoPlayerMessage(renderer, C.MSG_SET_AUDIO_ATTRIBUTES,
          audioAttributes);
    }
  }
  player.sendMessages(messages);
}
 
开发者ID:CarGuo,项目名称:GSYVideoPlayer,代码行数:13,代码来源:SimpleExoPlayer2.java

示例6: setVolume

import com.google.android.exoplayer2.Renderer; //导入方法依赖的package包/类
/**
 * Sets the audio volume, with 0 being silence and 1 being unity gain.
 *
 * @param audioVolume The audio volume.
 */
public void setVolume(float audioVolume) {
  this.audioVolume = audioVolume;
  ExoPlayerMessage[] messages = new ExoPlayerMessage[audioRendererCount];
  int count = 0;
  for (Renderer renderer : renderers) {
    if (renderer.getTrackType() == C.TRACK_TYPE_AUDIO) {
      messages[count++] = new ExoPlayerMessage(renderer, C.MSG_SET_VOLUME, audioVolume);
    }
  }
  player.sendMessages(messages);
}
 
开发者ID:CarGuo,项目名称:GSYVideoPlayer,代码行数:17,代码来源:SimpleExoPlayer2.java


注:本文中的com.google.android.exoplayer2.Renderer.getTrackType方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。