android - 在三星设备上播放 mp4 文件时出现 PVMFErrContentInvalidForProgressivePlayback 错误

标签 android video-streaming mp4 android-videoview

我正在使用经典的 VideoView 实现在 Android 上播放视频。

相同的 mp4 文件 URL 在 HTC Desire 上工作正常。但它不适用于三星设备。

三星 Galaxy S1 和三星 Galaxy Tab 提示:“无法播放视频。无法播放视频。流数据无效”
三星 5110 显示:“无法播放视频。抱歉,该视频无法流式传输到此设备”

当我用文本编辑器查看mp4文件时,我意识到mdat标签位于moov之前。

我的问题是它在 HTC 上如何工作,而在三星设备上却不起作用。而且我没有机会更改 mp4 文件的格式,那么我该如何克服这个问题呢?

07-29 15:24:21.740: ERROR/PlayerDriver(2402): PlayerDriver::it is a not Protected file
07-29 15:24:21.763: ERROR/(2402): IIIIIII Inside Constructor of PVMFMemoryBufferWriteDataStreamImpl
07-29 15:24:21.806: ERROR/MediaPlayerService(2402): Client::notify In
07-29 15:24:21.806: ERROR/(2402): IIIIIII Inside Constructor of PVMFMemoryBufferReadDataStreamImpl
07-29 15:24:21.806: ERROR/(2402): IIIIIII Inside Constructor of PVMFMemoryBufferReadDataStreamImpl
07-29 15:24:21.810: ERROR/MediaPlayer(15339): message received msg=3, ext1=0, ext2=0
07-29 15:24:21.810: ERROR/MediaPlayer(15339): callback application
07-29 15:24:21.810: ERROR/MediaPlayer(15339): back from callback
07-29 15:24:21.822: ERROR/(2402): IIIIIII Inside Constructor of PVMFMemoryBufferReadDataStreamImpl
07-29 15:24:21.822: ERROR/(2402): IIIIIII Inside Constructor of PVMFMemoryBufferReadDataStreamImpl
07-29 15:24:21.822: ERROR/MediaPlayerService(2402): Client::notify In
07-29 15:24:21.822: ERROR/MediaPlayer(15339): message received msg=200, ext1=1, ext2=26
07-29 15:24:21.822: ERROR/MediaPlayer(15339): callback application
07-29 15:24:21.822: ERROR/MediaPlayer(15339): back from callback
07-29 15:24:21.822: ERROR/PlayerDriver(2402): Command PLAYER_INIT completed with an error or info -82
07-29 15:24:21.822: ERROR/MediaPlayerService(2402): Client::notify In
07-29 15:24:21.822: ERROR/MediaPlayer(15339): message received msg=100, ext1=200, ext2=-82
07-29 15:24:21.822: ERROR/MediaPlayer(15339): error (200, -82)
07-29 15:24:21.822: ERROR/MediaPlayer(15339): callback application
07-29 15:24:21.826: ERROR/MediaPlayer(15339): back from callback
07-29 15:24:22.025: ERROR/MediaPlayer(15339): Error (200,-82)

最佳答案

终于找到问题了

当我用mp4box提示mp4文件时,它也在三星设备上播放。

mp4box -提示

此过程正确地重新排列了视频文件的 moov 和 mdat 标签。

在此之前,同一个文件在 Android 2.3 的设备上可以正常播放,但在 Android 2.2 的设备上则不行。我不确定,但“安全流媒体”的限制可能在 2.3 版本之后取消了。

关于android - 在三星设备上播放 mp4 文件时出现 PVMFErrContentInvalidForProgressivePlayback 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6874191/

相关文章:

Android - 测试版与生产版

FFMpeg 简单/快速转换视频文件不适用于任何视频

android - 如何为图像的某些像素设置颜色

android - 我如何以字节 block 播放视频?

Android 流媒体视频 - 需要纵横比

android - 为了使我的应用成为视频播放器,我需要执行哪些具体的 list 条目?

ffmpeg 无法将 ivr 文件转换为 mp4

java - 如何在 mp4 视频文件中添加 MOOV 原子

java - 和引擎警报对话框错误

android - 启动 Gmail 应用程序的 Intent URI