Android平台直接从URL播放mp4视频失败,有啥解决办法吗?

Posted

技术标签:

【中文标题】Android平台直接从URL播放mp4视频失败,有啥解决办法吗?【英文标题】:Failed to play mp4 video directly from URL in Android platform, is there any solution?Android平台直接从URL播放mp4视频失败,有什么解决办法吗? 【发布时间】:2012-08-26 14:02:09 【问题描述】:

我正在尝试在 videoView 上播放来自 URL 的视频。视频扩展是mp4,问题是出现这样的错误:

logcat 是这样的:

![在此处输入图片描述][2]

实际上,我在 ***.com 上发现了很多问题,但没有什么是方便的。问题在于 mp4 格式,我尝试了 3gp 并且效果很好。我不想下载视频然后播放,也不想将其转换为 3gp。

感谢您的帮助。

EDIT:: 这里是代码sn-p

     String LINK =  "https://********/cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb.mp4";
    VideoView videoView = (VideoView) findViewById(R.id.videoView1);
    MediaController mc = new MediaController(this);  
    mc.setAnchorView(videoView);
    mc.setMediaPlayer(videoView);
    Uri video = Uri.parse(LINK);
    videoView.setMediaController(mc);
    videoView.setVideoURI(video);
    videoView.start();

编辑

我不知道如何应用这个来自 android 网站的建议:

  For 3GPP and MPEG-4 containers, the moov atom must precede any mdat atoms, but must succeed the ftyp atom.
  For 3GPP, MPEG-4, and WebM containers, audio and video samples corresponding to the same time offset may be no more than 500 KB apart. To minimize this audio/video drift, consider interleaving audio and video in smaller chunk sizes.

【问题讨论】:

放一些代码看看是什么原因造成的 感谢@Filipe Batista 我已添加代码 它适用于另一个带有 http 的 mp4 视频...我上面的视频是 HTTPS 并且需要 SSL 证书,所以还有另一个问题 【参考方案1】:

就像@Giuseppe 所说,HTTPS 可能是问题所在,如果您使用的是 3.1 之前的 Android 版本。 如果在这里看到它: http://developer.android.com/guide/appendix/media-formats.html 它说:

注意:在 Android 3.1 之前不支持 HTTPS。

编辑: 确保您在清单文件中拥有以下权限:

<uses-permission android:name="android.permission.INTERNET" /> 

还要测试在真实设备上播放的视频,因为有时模拟器会出现一些问题。

【讨论】:

查看我编辑的答案。我还在真实设备(Android 2.3.6)上测试了该代码,并且可以正常工作。 你是如何解决姜饼中的 https 的,很高兴知道,谢谢@Amt87

以上是关于Android平台直接从URL播放mp4视频失败,有啥解决办法吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用远程 URL 在 Android 模拟器中播放 mp4 视频?

Android TV 从 URL 播放视频

如何在 android 的 videoview 中播放 .mp4 视频?

我想要一个 .mp4 格式的 vimeo 直接视频文件链接的示例 url。

Android:无法播放 mp4 视频

解决部分mp4视频在ios上无法播放问题