0

URLがあります。次のようになります。

https://content.stage.someCompany.net/deliveries/artistNameHere/songNameHere-128.mp3?Expires=someNumberHere&Signature=someReallyReallyReallyLongStringHere&Key-Pair-Id=someIdHere

それを細かく分けてみましょう:

https://content.stage.someCompany.net/deliveries/artistNameHere/songNameHere-128.mp3

?Expires=someNumberHere

&Signature=someReallyReallyReallyLongStringHere

&Key-Pair-Id=someIdHere

ご覧のとおり、これは 128 kbps に制限された .mp3 の美化されたものであり、末尾にいくつかのセキュリティ機能が追加されています。

Mac の Safari にロードすると、再生されます。iOS アプリの AVPlayer コンストラクターに渡すと、同様に再生されます。

ただし、これを使用して AVURLAsset を作成すると、.isPlayable が false であると報告されます。そのアセットに基づいて AVPlayerItem をさらに作成することに頑固に固執すると、AVPlayerItemStatusFailed が報告されます。

言うまでもなく、これらの条件では、私の AVURLAsset + AVPlayerItem + AVPLayer インフラストラクチャ (player.play() で最高潮に達します) は、実際には音楽を再生しません。

ただし、Apple 独自のhttps://devimages.apple.com.edgekey.net/streaming/examples/bipbop_4x3/bipbop_4x3_variant.m3u8など、他の URL に置き換えると正常に再生されます。

また

(別のstackoverflowトピックからのランダムな.mp3)http://podcast.cbc.ca/mp3/podcasts/asithappens_20160907_50906.mp3

私が見た違い: Apple の URL は実際にはある種の「プレイリスト」ですが、2 番目の URL はプレーンな「文明化された」.mp3 です。リンクの最後にセキュリティマンボジャンボはもうありません。

URL が再生されないのはなぜですか? セキュリティ関連で何か特別なことをする必要がありますか? 今、私は素朴に「ねえ、AVURLAsset...これが私の(全体の)URLです...それであなたのことをしてください...」

4

1 に答える 1