首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android HLS Streaming -不同的Android版本在Stream中加载不同的位置

Android HLS Streaming -不同的Android版本在Stream中加载不同的位置
EN

Stack Overflow用户
提问于 2013-05-29 17:49:05
回答 4查看 23.3K关注 0票数 18

我意识到在Android对HLS的支持程度方面存在一些问题。我正在尝试编写一个小的videoplayer演示程序(以在尽可能多的设备上工作);最好不要使用第三方库;它可以流式传输HLS视频。

注释:我目前正在JellyBean 4.2.2上测试,但可以访问其他版本

我已经设法使用了MediaPlayer类,以便我的应用程序能够开始播放流(例如苹果的测试视频BipBopAll),但它似乎加载了错误的流部分,因为视频似乎在29分钟后开始(因此它在大约30秒后结束)。

我使用的代码非常简单:

代码语言:javascript
复制
private void playTrack()
{   
    player = new MediaPlayer();

    try 
    {                   
        player.setDisplay(holder);
        player.setDataSource("http://devimages.apple.com/iphone/samples/bipbop
                              /bipbopall.m3u8");
        player.prepare();

    } 
    catch (...) 
    {
    }
    player.start();
}

我已经在 4.0.4上测试了同样的代码,它工作正常。在3.0.1中测试,在15分钟时加载流,然后从那里正确运行。

如何确保流从开头开始,并在多个Android版本上正确播放?

或者,有没有我应该使用的更好的实现?

EN

回答 4

Stack Overflow用户

发布于 2013-06-14 22:19:36

经过进一步的调查,我发现了以下信息,希望能帮助其他人在Android上使用HLS流媒体。

Android编码-视频编码和分割设置会对视频支持的版本产生很大影响。我最终使用HandBrake创建了一个视频,设置如下:

  • MP4
  • H.264;Baseline Profile;Level 3
  • AAC音频;44.1k;128bit (注意:我发现JellyBean在音频方面比ICS/Honeycomb挑剔得多。一些音频比特率会创建Jellybean根本不会播放的视频。一般来说,单声道和低比特率音频似乎在Jellybean上工作得更好)。

Segmentation -使用苹果MediaFileSegmenter,我发现添加“-no-Segmentation-point-duration”和"-z none“标志可以创建一个可以在Android3.0->4.2上运行的视频

姜饼-我无法让Android2.3开箱即用,但我发现使用Vitamio库工作得很好(有关更多信息,请参阅this question )

票数 14
EN

Stack Overflow用户

发布于 2013-11-19 02:11:46

一些版本的Android似乎将http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8上的HLS解释为live HLS而不是VOD HLS,因此媒体播放器在接近"live“点时开始播放,接近内容结束时,大约29分钟。

原因如下:在4.3之前,HLS播放列表文件中的最后一行不会被解析,除非它以'\n‘结尾。

查看该文件的更改历史:http://androidxref.com/4.3_r2.1/history/frameworks/av/media/libstagefright/httplive/M3UParser.cpp,在12/31/12,有一些更改修复了该问题。这个问题在4.4上已经不存在了。

因此,解决旧版本问题的一种方法是在服务器上播放列表的最后一行之后添加换行符,或者在应用程序中实现一个HTTP代理来有效地添加该换行符,这可能不是微不足道的……

票数 3
EN

Stack Overflow用户

发布于 2013-05-29 18:20:05

你有没有尝试在URL中给播放器一个start参数?

如下所示:

"http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8?start=0

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16810673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档