2016-04-29 12 views
0

私はビデオをストリームするために私のアプリでBrightcove Exoplayerを使用しています。しかし、ネットワークの中断を完全には処理しないことに気づきました。netowrk接続が再確立されたら、Brightcove Exoplayerでビデオの再生を再開するにはどうすればよいですか?

次の場合に再生を再開することができない:

  1. シーク位置=バッファ位置と装置がデータネットワークに を再接続後。
  2. データネットワークが切断されていて、データネットワークが接続されていない状態で、ユーザーが後方または前方を求めている場合は、再接続します。

これらのユースケースを処理するためのBrightcoveが保証/説明する方法はありますか?

マイコード:

public class BrightCoveActivity extends BrightcovePlayer { 

    private static final String AUTH_TOKEN = "<The Auth Token>"; 
    private static final String TAG = BrightCoveActivity.class.getSimpleName(); 

    private BrightcoveExoPlayerVideoView brightcoveExoPlayerVideoView; 
    private EventEmitter eventEmmiter; 
    private Context mContext; 
    private MediaController mMediaController; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     Log.d(TAG, "onCreate"); 
     setContentView(R.layout.activity_bright_cove); 
     brightcoveExoPlayerVideoView = (BrightcoveExoPlayerVideoView) findViewById(R.id.brightcove_video_view); 
     super.onCreate(savedInstanceState); 

     mContext = this; 

     final Catalog catalog = new Catalog(AUTH_TOKEN); 

     fullScreen(); 

     mMediaController = new MediaController(this); 
     brightcoveExoPlayerVideoView.setMediaController(mMediaController); 

     eventEmmiter = brightcoveExoPlayerVideoView.getEventEmitter(); 

     prepareEventEmmiter(); // puts all event listeners in place. 

     catalog.findVideoByID(VIDEO_ID, new VideoListener() { 

      @Override 
      public void onError(String error) { 
       throw new RuntimeException(error); 
      } 

      @Override 
      public void onVideo(Video video) { 
       brightcoveExoPlayerVideoView.add(video); 
       brightcoveExoPlayerVideoView.start(); 
      } 
     }); 

    } 

    /* 
     More code not related to playback 
    */ 
} 

答えて

0

このケースを処理するために利用可能なより良い方法は、アプリ内のネットワークの変更に耳を傾け、カタログからビデオを再フェッチです。あなたはこれを行う間に様々なことを処理する必要があります(そこにいる場合は広告管理、PROGRESSイベントの現在位置を保持し、カタログフェッチが完了したら同じものを再利用します)。

+0

これはPandoraのボックスです。ビデオ分析を抽出しようとすると、クライアント側で処理するのが非常に高価になります。 –

関連する問題