2017-03-17 9 views

答えて

2

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); 
} 

幸運!

関連する問題