1

iPhone で HTTP ライブ ストリーム (m3u、m3u8 プレイリスト ファイルを使用) から曲名と作曲者名を取得できません。このサイトtempomix radioから入手しようとしました。これはストリーミングへのリンクです - http://stream21.group-network.net:9012

次のコードを使用しようとしています:

        AVPlayerItem *playerItem = [AVPlayerItem playerItemWithURL:url];
    _player = [[AVPlayer playerWithPlayerItem:playerItem] retain];

    _player.actionAtItemEnd = AVPlayerActionAtItemEndNone;
    [_player addObserver:self forKeyPath:@"status" options:NSKeyValueObservingOptionNew context:NULL];
    [_player addObserver:self forKeyPath:@"currentItem" options:NSKeyValueObservingOptionNew context:NULL];
    [_player addObserver:self forKeyPath:@"timedMetadata" options:NSKeyValueObservingOptionNew context:NULL];

そして、ここでコールバックを待っています:

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

コールバックが来たら、AVPlayerStatus を確認して play を実行します。ラジオは正常に再生されますが、observeValueForKeyPath にはなりません。

この質問がこの質問に似ていることは知っていますが、説明されている方法は私にはうまくいきません。

何か案は?ありがとう。

4

1 に答える 1

1

ID3 タグは、リンクしたストリームとは関係ありません。SHOUTcast/Icecast は ID3 タグを使用しません。

SHOUTcast メタデータ プロトコルを解析する必要があります。ここで PHP に関するこの質問に答えました: https://stackoverflow.com/a/4914538/362536 言語に関係なく、プリンシパルは同じです。

http://www.smackfu.com/stuff/programming/shoutcast.htmlも参照してください。

于 2012-07-31T14:17:58.207 に答える