如何播放视频的onCreate方法?方法、视频、onCreate

2023-09-06 04:59:20 作者:静默如初

如何播放视频的onCreate方法?我曾经按照code为that.But的视频不是Played.If我用点击按钮事件这个code,那么这是合作。

How to Play Video on OnCreate Method? I Used Following code for that.But The Video is Not Played.If i used this Code on Click Event of Button then This is Worked.

我的onCreate方法: -

My OnCreate Method:-

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);      
    getWindow().setFormat(PixelFormat.UNKNOWN);
    surfaceView = (SurfaceView) findViewById(R.id.surfaceview);
    surfaceHolder = surfaceView.getHolder();
    surfaceHolder.addCallback(this);
    surfaceHolder.setFixedSize(176, 144);
    surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
    mediaPlayer = new MediaPlayer();
    mediaPlayer.isLooping();
    playvideo();
}

我的playVideo功能: -

My PlayVideo Function:-

public void playvideo() {
    String stringPath = "/sdcard/video.mp4";

    if (mediaPlayer.isPlaying()) {
        mediaPlayer.reset();
    }

    mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
    mediaPlayer.setDisplay(surfaceHolder);

    try {
        mediaPlayer.setDataSource(stringPath);
        mediaPlayer.prepare();
    } catch (IllegalArgumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IllegalStateException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    mediaPlayer.start();
}

先谢谢了。

推荐答案

您不能起到的onCreate视频,因为打你需要一个面与面的时候,你曾呼吁的playVideo尚未创建视频内容()。

You cannot play the video in onCreate, because to play video content you need a surface and Surface has not been created when you had called playVideo().

要获取的视频播放工作,你需要做以下

To get video playback working, you need to do the following

实施您的活动SurfaceHolder回调。与surfaceholder注册类(surfaceHolder.addCallback(本);)在创建表面,surfaceCreated()被调用,在那里你会得到表面持有者的一个实例。现在,你可以调用的playVideo(与surfaceHolder的实例)。里面的playVideo()得到的表面,放在媒体播放器实例。

Shash