我在com.google.android.exoplayer2.ui.SimpleExoPlayerView
视图中加载了视频,但我想在视图加载时自动启动它。现在,用户必须单击播放按钮。
答案 0 :(得分:5)
SimpleExoPlayer适用于SurfaceView,有一些方法可以设置播放器的表面。
这就是我创建SimpleExoPlayer的方式:
/** Create a default TrackSelector **/
TrackSelector trackSelector = new DefaultTrackSelector(new Handler());
/** Create a default LoadControl **/
LoadControl loadControl = new DefaultLoadControl();
/** Create the player **/
mPlayer = ExoPlayerFactory.newSimpleInstance(context, trackSelector, loadControl);
/** Make the ExoPlayer play when its data source is prepared **/
mPlayer.setPlayWhenReady(true);
我拥有这些工厂,因此每次设置新数据源时都不必创建它们。
/** Produces Extractor instances for parsing the media data **/
mExtractorsFactory = new DefaultExtractorsFactory();
/** Produces DataSource instances through which media data is loaded **/
mDataSourceFactory = new DefaultDataSourceFactory(
context, Util.getUserAgent(context, "AppName")
);
我使用以下方法在播放器上设置新的数据源。此方法使用先前创建的工厂。
对我来说,String source
是设备SD卡上保存的mp4文件的URI。准备好setPlayWhenReady(true)
之后,一旦准备好此视频,准备播放它将立即开始。
public void setDataSource(SurfaceView view, String source) {
stopMedia();
mPlayer.setVideoSurfaceView(view);
view.requestFocus();
// Create the media source
mVideoSource = new ExtractorMediaSource(Uri.fromFile(
new File(source)),
mDataSourceFactory, mExtractorsFactory, null, null);
// Prepare the player with the source.
mPlayer.prepare(mVideoSource);
}
祝你好运!
答案 1 :(得分:1)
只需使用:
player.setRepeatMode(Player.REPEAT_MODE_ALL);