1

我目前正在使用 AVPlayerItem 从 URL 播放实时流。我的代码是

- (void)viewDidLoad
{
    AVPlayerItem* playerItem = [AVPlayerItem playerItemWithURL:[NSURL URLWithString:@"http://s4.voscast.com:8080/"]];

    [playerItem addObserver:self forKeyPath:@"timedMetadata" options:NSKeyValueObservingOptionNew context:nil];

    AVPlayer* player = [[AVPlayer playerWithPlayerItem:playerItem] retain];
    [player play];

    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}
- (void) observeValueForKeyPath:(NSString*)keyPath ofObject:(id)object
                         change:(NSDictionary*)change context:(void*)context {

    if ([keyPath isEqualToString:@"timedMetadata"])
    {
        AVPlayerItem* playerItem = object;

        for (AVMetadataItem* metadata in playerItem.timedMetadata)
        {
            NSLog(@"\nkey: %@\nkeySpace: %@\ncommonKey: %@\nvalue: %@", [metadata.key description], metadata.keySpace, metadata.commonKey, metadata.stringValue);
        }
    }
}

有什么办法可以暂停,然后从中断的地方继续,允许快进重新开始生活?

4

1 回答 1

0

您可以使用[player pause][player play]暂停和恢复流式传输,但不能从您离开的点恢复为正常轨道(例如 mp3 文件)。您可以达到与关闭和使用汽车收音机相同的效果。

为了实现这一点,您应该在“暂停”期间在后台缓冲流,然后重现它,但我想它相当复杂。我不能帮你。

于 2013-05-26T21:13:41.550 回答