Android MediaController/VideoView可以';在某些手机上不能播放mp4

Android MediaController/VideoView可以';在某些手机上不能播放mp4,android,ffmpeg,android-videoview,mediacontroller,Android,Ffmpeg,Android Videoview,Mediacontroller,在我的应用程序中,我根据用户使用Ffmpeg拍摄的图像创建视频。我使用MediaController和VideoView播放此视频。当我使用Google Nexus 4的Genymotion emulator运行应用程序时,视频文件播放没有问题。当我使用三星Galaxy S4的Genymotion模拟器时,我从错误监听器上的VideoView中得到一个错误,即“无法播放视频” 谢谢您的帮助。仅仅因为扩展名是。mp4不能保证它将由MediaPlayer播放。如果它不是受支持的编码,它将不会播放它。

在我的应用程序中,我根据用户使用Ffmpeg拍摄的图像创建视频。我使用MediaController和VideoView播放此视频。当我使用Google Nexus 4的Genymotion emulator运行应用程序时,视频文件播放没有问题。当我使用三星Galaxy S4的Genymotion模拟器时,我从错误监听器上的VideoView中得到一个错误,即“无法播放视频”


谢谢您的帮助。

仅仅因为扩展名是
。mp4
不能保证它将由MediaPlayer播放。如果它不是受支持的编码,它将不会播放它。请看一下所有的图片


因此,请反思您的代码,并找到您的视频使用的编码类型。此外,如果您正在寻找一种更强大的视频播放方式,您也可以试用Google的Exoplayer。

使用
ffmpeg
转换视频对我的应用程序来说效果很好。我希望这有助于:

ffmpeg -i old.mp4 -c:v libx264 -profile:v baseline -level 1 -strict -2 new.mp4

我在堆栈溢出的其他地方发现了这行代码,但不幸的是,我无法追溯到哪里。所以,如果有人看到它,请链接到这里。原始版本的命令中没有
-strict-2

Hi@oblivion,是的,我在发布之前检查了该链接,根据规定的编解码器,一切都应该正常。我会查看Exoplayer谢谢。而且,一定要在真正的设备上测试应用程序,以确认一些事情!快乐编码:)显示实际的
ffmpeg
命令和完整的控制台输出将提供信息。