2014-01-20 193 views
1

我想從服務器播放TS文件:AVPlayer播放TS文件

- (void)play { 
    NSURL *url= [NSURL URLWithString:@"http://10.0.0.18/11.ts"]; 

    player = [[AVPlayer alloc] initWithURL:url]; 
    [player addObserver:self forKeyPath:@"status" options:0 context:nil]; 
} 


- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object 
         change:(NSDictionary *)change context:(void *)context { 

    if (object == player && [keyPath isEqualToString:@"status"]) { 
     if (player.status == AVPlayerStatusReadyToPlay) { 
      [player setVolume:1.0]; 
      [player play]; 
     } else if (player.status == AVPlayerStatusFailed) { 
      // something went wrong. player.error should contain some information 
     } 
    } 
} 

而且玩家無法播放該文件。 我檢查文件是否可以在我的瀏覽器中下載,並且工作完美。 任何想法如何解決它?

回答

5

AVPlayer(Apple框架中的任何類)都不能播放TS文件。

唯一的方法是將其放入一個m3u8播放列表中,該播放列表通過本地http服務器分發並播放此播放列表。否則,您必須將ts轉換爲mp4,請參閱TS2MP4GPAC