1

Surface ビューを使用していて、ビデオを再生したいと考えています。しかし、ビデオには「mOnBufferingUpdateListener is null. Failed to send MEDIA_BUFFERING_UPDATE message.」というエラー メッセージが何度も表示されません。

この問題を解決するために私に提案してください。

@SuppressWarnings("deprecation")
private void createSurface() {
    try {
        holder = surfaceView.getHolder();
        holder.addCallback(this);
        holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
        mMediaPlayer = new MediaPlayer();
        mMediaPlayer.setDisplay(holder);
    } catch(Exception e) {
        Log.v("NB", "Exception at ::" + e.getMessage());
    }
}

private void releaseMediaPlayer() {
    if (mMediaPlayer != null) {
        mMediaPlayer.stop();
        mMediaPlayer.release();
        mMediaPlayer = null;
    }
}

private void playVideo() {
    try {
        if(videoPath!=null) {
            mMediaPlayer.setDataSource(videoPath);
            mMediaPlayer.prepare();
        }
    }
    catch (IllegalArgumentException e)
    {e.printStackTrace();}

    catch (IllegalStateException e)
    {e.printStackTrace();}

    catch (IOException e)
    {e.printStackTrace();}

    mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
    mMediaPlayer.start();

    mMediaPlayer.setOnCompletionListener(new OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mp) {
            releaseMediaPlayer();
            //finish();
        }
    });
}


@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {

}

@Override
public void surfaceCreated(SurfaceHolder holder) {
    playVideo();
}

@Override
public void surfaceDestroyed(SurfaceHolder holder) {
}

@Override
protected void onDestroy() {
    super.onDestroy();
    releaseMediaPlayer();
}

前もって感謝します。

4

0 に答える 0