寻求HLS音频流的AVPlayer

时间:2014-10-06 17:19:59

标签: ios objective-c avfoundation avplayer http-live-streaming

我正在使用AVPlayer来传输hls流。 我遇到的问题是因为我无法找到时间。

搜索逻辑与Apple's example hls stream一起正常工作。它也适用于我的非hls流,但我们想在这个项目中使用hls。

所以我的信念就是我们的流更容易出问题以及AVPlayer如何处理它。

playlist.m3u8

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=61378,CODECS="mp4a.40.34"
chunklist_w1105403169.m3u8

chunklist_w1105403169.m3u8

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-ALLOW-CACHE:NO
#EXT-X-TARGETDURATION:11
#EXT-X-MEDIA-SEQUENCE:5015
#EXTINF:10.028,
media_w1105403169_5015.mp3
#EXTINF:10.036,
media_w1105403169_5016.mp3
#EXTINF:10.027,
media_w1105403169_5017.mp3

我已经使用mediastreamvalidator检查了流,我得到了:

Warning: (0:-16230) #EXT-X-ALLOW-CACHE should only be in master playlist

但我的理解Apple忽略了这面旗帜。

我无法控制流,但可以请求更改。

我的实施的缩减版本:

播放器的设置

AVPlayer *player = [[AVPlayer alloc] initWithURL:url];

寻求x秒

- (void)trySeekBackBy:(NSTimeInterval )seconds
     CMTime minus = CMTimeMakeWithSeconds(seconds, 1);
     CMTime time = CMTimeSubtract(self.currentTime, minus);

     //check that time is within the seek able range. 
     if ([self canSeekToTime:time]) {
           //I normally just seekToTime: 
          [self seekToTime:time toleranceBefore:kCMTimeZero toleranceAfter:kCMTimeZero];
     }
   / /else work down till we can find a range we can seek to 
 }

0 个答案:

没有答案