使用mediaplayer播放视频时,SurfaceView为空白

use*_*821 6 android surfaceview media-player

这是我的代码,但当我启动媒体播放器时,它只有声音出来,表面没有任何显示.为什么?

我不知道这个.你有一些代码可以帮我学习吗?

    videoV = (SurfaceView) findViewById(R.id.SurfaceView1);
    sh = videoV.getHolder();

    File path = Environment.getExternalStorageDirectory();
    File file = new File(path, "sample2.mp4");

    sh.addCallback(this);     
    mp = new MediaPlayer();
    mp.setDataSource(file.getAbsolutePath());
    mp.setDisplay(sh);
    mp.prepare();
    mp.start();
Run Code Online (Sandbox Code Playgroud)

小智 5

尝试添加之后

sh.addCallback(this);
Run Code Online (Sandbox Code Playgroud)

这个

sh.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
Run Code Online (Sandbox Code Playgroud)

就我而言,这很有帮助.


Hus*_*ain 1


试试这个代码。

resource是您要播放的文件名,one.two是您的路径可能类似于的包名android.resource://package_name/raw/file_name

VideoView video=(VideoView) findViewById(R.id.videoview);
MediaController mediaController = new MediaController(this);
mediaController.setAnchorView(video);
video.setMediaController(mediaController);
//Uri uri = Uri.parse("android.resource://play.vedio/"+R.raw.dobeernotdrugs);
video.setKeepScreenOn(true);
video.setVideoPath("android.resource://one.two/raw/"+resource);
video.start();
video.requestFocus();
Run Code Online (Sandbox Code Playgroud)

另请查看本教程