MediaPlayer (Android ICS) を使用して 2 つの動画をループ再生し、毎回入れ替えようとしています。
それはうまく機能しますが、ランダムな時間の後にアプリケーションがフリーズし、エラーが発生します:
[SurfaceView] connect : already connected (cur=3, req=3)
setVideoSurfaceTexture failed : -22
これが私のコードです:
public void onCreate(Bundle savedInstanceState) {
...
mMediaPlayer = new MediaPlayer();
try {
mMediaPlayer.setDataSource( currentPath );
mMediaPlayer.setDisplay(mPreview.getHolder());
mMediaPlayer.setOnBufferingUpdateListener(this);
mMediaPlayer.setOnCompletionListener(this);
mMediaPlayer.setOnPreparedListener(this);
mMediaPlayer.setOnVideoSizeChangedListener(this);
mMediaPlayer.setOnErrorListener(this);
mMediaPlayer.prepare();
} catch (Exception e) {
}
public void onPrepared(MediaPlayer mp) {
mp.start();
}
public void onCompletion(MediaPlayer mp) {
try {
mMediaPlayer.reset();
if (mCurrentPath == mPath1)
mCurrentPath = mPath2;
else
mCurrentPath = mPath1;
mMediaPlayer.setDataSource( mCurrentPath );
mMediaPlayer.prepare();
} catch (Exception e) {
}
}
何か案は ?