VideoView 在 Fragment 中播放 .m3u8 不会在 Nexus 7 中播放。在 HTC1 M8 中播放正常

Posted

技术标签:

【中文标题】VideoView 在 Fragment 中播放 .m3u8 不会在 Nexus 7 中播放。在 HTC1 M8 中播放正常【英文标题】:VideoView playing .m3u8 in Fragment won't play in Nexus 7. Plays fine in HTC1 M8 【发布时间】:2015-02-19 16:31:56 【问题描述】:

当我在 Nexus 7 (android 4.4.2) 中运行我的 .m3u8 类型的视频时,我的 VideoView 片段无法播放,并弹出“无法播放此视频”错误。这很令人困惑,因为我在我的 HTC1 M8 (4.4.4) 上使用了相同的代码并且它运行得很好。

这是我的片段代码:

public class VideoFragment extends Fragment
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    View view=inflater.inflate(R.layout.video_fragment, container, false);
    VideoView vidView = (VideoView)view.findViewById(R.id.myVideo);
    String vidAddress1 = "http://www.nasa.gov/multimedia/nasatv/NTV-Public-IPS.m3u8";
    Uri vidUri = Uri.parse(vidAddress1);
    vidView.setVideoURI(vidUri);
    MediaController vidControl = new MediaController(getActivity()); /* Video controls */
    vidControl.setAnchorView(vidView);
    vidView.setMediaController(vidControl);
    vidView.start();
    return view; 

为了清楚起见,片段本身显示得很好,只是视频没有播放。

这在 Nexus 7 上不起作用有什么原因吗?

感谢您的帮助,非常感谢。

编辑:添加视频类型

编辑 2:为了确保它不是视频本身,我用我的代码测试了此处列出的每个视频:https://***.com/questions/10104301/hls-streaming-video-url-need-for-testing/13265943#13265943

每个都有同样的问题,它在我的 HTC1 M8 上播放,但在我的 Nexus 7 上没有。

【问题讨论】:

【参考方案1】:

所以我将 Nexus 更新到 Android 4.4.3 并下载了新的升级到 Android Studio。现在我的代码运行得很好。

经验教训:确保设备是最新的。

【讨论】:

以上是关于VideoView 在 Fragment 中播放 .m3u8 不会在 Nexus 7 中播放。在 HTC1 M8 中播放正常的主要内容,如果未能解决你的问题,请参考以下文章

Fragment 中带有 VideoView 的黑屏

无法在android的videoview中播放来自url的视频如何在videoview中播放来自URL的视频?

如何在videoview中播放流视频

使用VideoView播放视频

无法在 VideoView 中播放视频 - 为啥?

无法在 videoView 中播放 RTSP url