2 つのビデオを同時にユーザーに表示し、それらを同期する必要がある Android アプリケーションを開発しています。以下のアルゴリズムを使用してこれを達成しました。
int firstPercentage = (int)(100 * mVideoView1.getCurrentPosition() / (float)mVideoView1.getDuration());
int secondPercentage = (int)(100 * mVideoView2.getCurrentPosition() / (float)mVideoView2.getDuration());
if(mVideoView1.getBufferPercentage() < firstPercentage + 10 ||
mVideoView2.getBufferPercentage() < secondPercentage + 10) {
mVideoView1.pause();
mVideoView2.pause();
}else{
mVideoView1.start();
mVideoView2.start();
}
VideoView
上記のアルゴリズムは基本的に、両方の 2 つが少なくとも 10% のバッファリングされたビデオ データを再生することを保証します。ただし、アプリケーションにはシークバーと再生/一時停止ボタンがあります。したがって、ユーザーはまだバッファリングされていない位置をシークできるため、上記のソリューションは機能しません。そのようなアプリを実装した人はいますか? Androidでこれを達成する良い方法はありますか?
注: ビデオはリモートであり、そのサイズは小さくありません。