【问题标题】:Android VideoView - blank video after path change on some devicesAndroid VideoView - 在某些设备上更改路径后出现空白视频
【发布时间】:2012-08-03 21:52:44
【问题描述】:

我对 android 开发很陌生,我目前正在开发一个非常简单的应用程序,其中还包括一些视频。为了演示我的问题,我的 res/raw/ 目录中有 2 个视频(例如 video1.mp4 和 video2.mp4)。我想在第一个视频结束后立即开始播放第二个视频。我就是这样称呼视频的:

public void showVideo1() {
    VideoView vd = (VideoView)findViewById(R.id.videoview);
    vd.setVideoPath("android.resource://com.myapp.hello/" + R.raw.video1);
    vd.setOnCompletionListener(new MediaPlayer.OnCompletionListener() 
    {           
        public void onCompletion(MediaPlayer mp) 
        {
            Log.d("VideoComplete", "Video 1 is complete");
            showVideo2(); // start playing the second video...
        }           
    }); 
    vd.start();
}


public void showVideo2() {
    VideoView vd = (VideoView)findViewById(R.id.videoview);
    vd.setVideoPath("android.resource://com.myapp.hello/" + R.raw.video2);
    vd.setOnCompletionListener(new MediaPlayer.OnCompletionListener() 
    {           
        public void onCompletion(MediaPlayer mp) 
        {
            Log.d("VideoComplete", "Video 2 is complete");
        }           
    }); 
    vd.start();
}

此示例适用于大多数设备 - 我调用 showVideo1() 来调用 showVideo2,两个视频都已播放,仅此而已。但我发现有些设备无法播放第二个视频(???)。例如,我的旧三星 Galaxy 5 i5500 在完成第一个视频后只显示一个空白屏幕 - 我可以在调试中看到第二个视频已加载并启动但它不显示 - 第一个视频播放没有问题。这款手机使用的是 Android v2.2,我还在另一台使用相同操作系统版本(Galaxy Tab GT-P1000)的设备上进行了尝试,两个视频都在那里播放。

我尝试重新编码视频(以为是编解码器错误),但仍然没有运气。我也玩过 setZOrderOnTop(true), seekTo(0), ... 这让我发疯了。

有什么建议吗?我未来的应用程序依赖于所有设备上的此功能(能够一个接一个地播放视频),所以我对此感到非常绝望。

【问题讨论】:

  • 您的设备似乎不支持第二个视频。您是否尝试在其他应用中播放第二个视频?

标签: android android-videoview


【解决方案1】:

您可以在 Video1 的 onCompleteListener 中创建一个处理程序,并在一段时间后检查您的视频是否正在播放。您可以进一步尝试停止 Video2 并在可运行文件中再次播放它并尝试不同的事情,以了解其他设备是否绝对不可能支持您的逻辑。跟踪从 LogCat 发生的事件。祝你好运

【讨论】:

    猜你喜欢
    • 2021-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-17
    • 2013-06-17
    • 1970-01-01
    相关资源
    最近更新 更多