簡體   English   中英

在iOS 4.0中使用AVPlayer進行HTTP直播

[英]HTTP Live Streaming with AVPlayer in iOS 4.0?

是否可以在iOS 4.0上使用帶有AVPlayer的HTTP Live Streaming? 這顯然是4.0的記錄功能。 但是,如果我在運行iOS 4.0.1的3GS上運行Apple的SitchedStreamPlayer示例代碼 ,則單擊“加載電影”不會播放該流,但會出錯:

2011-06-21 13:14:49.428 StitchedStreamPlayer [680:307]由於錯誤,未加載資產的曲目:無法打開

MPMediaPlayer能夠在同一設備上播放相同的流 但是,我需要一個使用AVPlayer的工作解決方案。

有誰知道如何讓Apple的StichedStreamPlayer代碼在4.0上運行? 運行時要求說它應該適用於“iOS 4.0或更高版本”。

謝謝!

這是4.0中的一個錯誤,但我找到了一個解決方法。 以下是使用AVPlayer加載視頻的正確方法:

    AVPlayer *player = [AVPlayer playerWithURL:[NSURL URLWithString:@"http://qtdevseed.apple.com/addemo/ad.m3u8"]];
// now use KVO to decide when it's ready to play
// works in both 4.3 and 4.0.1

StitchedStreamPlayer的代碼在4.3但不是4.0.1中工作:

AVURLAsset *asset = [AVURLAsset URLAssetWithURL:[NSURL URLWithString:@"http://qtdevseed.apple.com/addemo/ad.m3u8"] options:nil];
    NSArray *tracksKeys = [NSArray arrayWithObjects:kTracksKey, kDurationKey, kPlayableKey, nil];
    [asset loadValuesAsynchronouslyForKeys:tracksKeys completionHandler:
     ^{
         NSError *error = nil;
         AVKeyValueStatus status = [asset statusOfValueForKey:[tracksKeys objectAtIndex:0] error:&error];
         NSLog(@"status=%@,error=%@",(status==AVKeyValueStatusLoaded?@"Loaded":status==AVKeyValueStatusFailed?@"Failed":@"?!"),error);
     }];

// output in 4.3: status=Loaded,error=(null)
// output in 4.0.1:  status=Failed,error=Error Domain=AVFoundationErrorDomain Code=-11828 "Cannot Open" UserInfo=0x15f2a0 {NSLocalizedFailureReason=This media format is not supported., NSUnderlyingError=0x1599e0 "The operation couldn’t be completed. (OSStatus error -12847.)", NSLocalizedDescription=Cannot Open}

有關更多信息,請參閱舊版本的StitchedStreamPlayer

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM