0

我的 Android 设备可以直接播放相同的视频 MP4 和 AVI 视频文件,但是在使用源代码时,它在出现“正在加载视频”消息的进度对话框后给我一个错误“无法播放此视频”。我是两种方式都使用: 1. 第一种方法:

Intent intent = new Intent(android.content.Intent.ACTION_VIEW);
Uri data = Uri.parse("http://localhost/h.mp4");
                    intent.setDataAndType(data, "video/*");
                    startActivity(intent);
  1. 第二种方法:

        Intent intent = new Intent(Intent.ACTION_MAIN);
        intent.addCategory(Intent.CATEGORY_HOME);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);
    

有什么帮助吗?

4

2 回答 2

1

你可以试试VideoView(文档)

try{
      VideoView videoView = (VideoView) findViewById(R.id.VideoView);         
      MediaController mediaController = new MediaController(this);
      mediaController.setAnchorView(videoView);
      // Set Audio/Video
      String strfilename = "http://localhost/h.mp4";
      Uri video = Uri.parse(strfilename);
      videoView.setMediaController(mediaController);
      videoView.setVideoURI(video);
      videoView.start();   
} 
catch (Exception e) {
//Handle Errors
} 

EDIT
Android 在使用 videoView 时对视频的编码方式也很挑剔。(请参阅下面的链接引用)

对于通过 HTTP 或 RTSP 流式传输的视频内容,还有其他要求:

• 对于 3GPP 和 MPEG-4 容器,moov 原子必须在任何 mdat 原子之前,但必须在 ftyp 原子之后。
• 对于 3GPP、MPEG-4 和 WebM 容器,对应相同时间偏移的音频和视频样本可能相隔不超过 500 KB。为了最大限度地减少这种音频/视频漂移,请考虑以较小的块大小交错音频和视频。

于 2013-08-26T18:21:22.463 回答
0

在您的 AndroidManifest.xml 中不要忘记添加 -

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

以便它可以访问http。

于 2013-11-24T22:14:04.803 回答