Ios 带有avurlaste+的流媒体.mp3;AVPlayerItem+;AVPLayer

Ios 带有avurlaste+的流媒体.mp3;AVPlayerItem+;AVPLayer,ios,avplayer,audio-streaming,avplayeritem,avurlasset,Ios,Avplayer,Audio Streaming,Avplayeritem,Avurlasset,我有一个网址。看起来是这样的: https://content.stage.someCompany.net/deliveries/artistNameHere/songNameHere-128.mp3?Expires=someNumberHere&Signature=someReallyReallyReallyLongStringHere&Key-Pair-Id=someIdHere 让我把它分成几部分: https://content.stage.someCompany.ne

我有一个网址。看起来是这样的:

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
正如你所看到的,它只是一个美化的.mp3,限制在128kbps,最后还有一些安全性的东西

如果我在Mac上的Safari中加载它,它就会播放。如果我将其传递给iOS应用程序中的AVPlayer构造函数,它也会播放

但是,如果我使用它创建avurlaste,它会报告.isPlayable为false。如果我顽固地坚持基于该资产进一步创建AVPlayerItem,它将报告AVPlayerItemStatusFailed

不用说,在这些情况下,我的AVURLAsset+AVPlayerItem+AVPLayer基础设施(最终生成player.play())实际上不播放音乐

然而,如果我替换其他URL,比如苹果自己的URL,它确实可以成功播放

(其他stackoverflow主题中的一些随机.mp3)

我看到的区别是:苹果的url实际上是某种“播放列表”,而第二个则是普通的“文明的”.mp3。在链接的末尾不再有安全问题

为什么我的url不能播放?我需要做一些具体的安全措施吗?现在,我只是天真地说“嘿,AVURLAsset…这是我的(整个)URL…用它做你的事情…”

找到了它

我收到的链接只有效一次。显然,这就是为什么“安全”在他们的结尾

在Safari中测试一个并“看到它工作”会使它无效。随后,在应用程序结果中尝试相同的结果是.isPlayable=false。 直接在应用程序中请求和使用会导致.isPlayable=true


因此,AVURLAsset+AVPlayerItem+AVPLayer工作正常。我只是个该死的傻瓜。

好吧,你提供的工作示例没有url属性。您的请求是否被Web服务器或其他东西重定向,而不是直接指向文件?