【问题标题】:Http Live Streaming on Android 4 (Ice Cream Sandwich)Android 4 上的 Http 直播(冰淇淋三明治)
【发布时间】:2011-11-02 09:28:10
【问题描述】:

我想在 android 上播放 http 直播链接 (.m3u8)。能否请您告诉我如何为此编写代码(sn-p)?

我尝试了以下方法(在 Activity 的 onCreate 事件中),但它不起作用(说无法播放视频):

VideoView vv = new VideoView(this);
Uri uri =Uri.parse("http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8");
vv.setVideoURI(uri);
setContentView(vv);

注意:使用模拟器进行测试 感谢您的帮助

【问题讨论】:

  • 设置ContentView后是否调用了vv.start()?这应该有效。你有什么例外吗?
  • 嗨 rajdeep,刚刚添加了 vv.start() 但没有帮助 - 相同的输出。 LogCat 显示几条消息:错误消息:“无法创建媒体播放器”。异常是 java.io.IOException : setDataSource failed.
  • AFAIK,模拟器上的 WIFI 网络层是从底层操作系统网络层模拟出来的,如果您的计算机位于某个代理服务器后面,您可能会遇到类似的错误(如果我记得,我用于得到类似的错误)。

标签: android http-live-streaming android-4.0-ice-cream-sandwich


【解决方案1】:

尝试以下方法:

    String httpLiveUrl = "http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8";
    videoView.setVideoURI(Uri.parse(httpLiveUrl));
    videoView.setMediaController(new MediaController(this));
    videoView.requestFocus();
    videoView.start();

尝试使用VitaMio 媒体播放器

HTTP 直播 (M3U8),适用于 Android 2.1+

edit: VitaMio 播放器死了


我认为这在实际设备中可以正常工作,因为它可以在 HoneyComb 中工作,所以有时会损坏模拟器

【讨论】:

  • 感谢 Reno,但我知道 android 3+ 默认支持 http live streaming(HLS)。由于我将只为 android 4 开发,需要 VitaMio 吗?
  • some known issues。模拟器似乎不可靠。
  • reno,它似乎不起作用。我所做的是:在我添加的 Acitivity 的 onCreate 函数中 - VideoView videoView = new VideoView(this);;setContentView(videoView); - 当我运行它时,我在 logCat 中得到以下信息: 1. D - MediaPlayer - 无法在客户端打开文件,尝试服务器端 2. E - MediaPlayer - 错误(1,-2147483648)和另外两行具有与第二个相同的错误消息一。在模拟器上,输出是“无法播放视频”对话框。
  • +1 这是在模拟器上执行此操作的正确方法,我在两个 Android 项目中使用相同的代码,没有任何问题。请注意,对于某些真机,httplive 不起作用,需要将其改回 http。
  • 不支持httplive 方案。
【解决方案2】:

看起来模拟器可能不完全支持这一点。 这在 ICS 设备上运行良好

【讨论】:

  • 您有 ICS 设备?还没发布呢
  • 注意:我是 Google android devrel 团队的一员
猜你喜欢
  • 2012-01-28
  • 1970-01-01
  • 2014-03-26
  • 1970-01-01
  • 2012-05-02
  • 1970-01-01
  • 2013-03-29
  • 2012-03-11
  • 1970-01-01
相关资源
最近更新 更多