13

AVQueuePlayer で再生している AVPlayerItem のストリーミング URL からファイル名と、可能であればアルバム画像を取得したいのですが、これを行う方法がわかりません。

また、ストリーミング URL にメタデータがないことが判明した場合NSURL*、AVPlayerItem に渡す前にメタデータを入れてもいいですか?

ありがとう。

4

2 に答える 2

39

誰もこの質問に答えていないことに驚いています。実際、私の他の質問には誰も答えていません。ここにいる人たちは本当にどれだけの知識を持っているのだろうと思います。

とにかく、私は先に進み、私自身の質問に答えます。次のようにして、メタデータを取得する方法を見つけました。

AVPlayerItem *playerItem = [AVPlayerItem playerItemWithURL:url];
NSArray *metadataList = [playerItem.asset commonMetadata];
for (AVMetadataItem *metaItem in metadataList) {
    NSLog(@"%@",[metaItem commonKey]);
}

次のようなリストが表示されます。

title
creationDate
artwork
albumName
artist

これで、オーディオ ストリームからメタデータにアクセスする方法がわかりました。を調べてNSArray、目的の を含む を探すだけです (たとえば、)。次に、それを見つけたら、そこからプロパティを取得します。AVMetadataItemcommonKeytitleAVMetadataItemvalue

これで問題なく動作しますが、データを取得しようとすると時間がかかる場合があります。見つけたに送信loadValuesAsynchronouslyForKeys:completionHandler:することで、データを非同期的にロードできますAVMetadataItem

同じ問題を抱えている可能性のある人に役立つことを願っています。

于 2011-10-20T05:05:40.257 に答える