小编rai*_*xer的帖子

AVPlayer在缓冲音频流的开始时"冻结"应用程序

我正在使用一个子类,AVQueuePlayer当我添加新AVPlayerItem的流媒体URL时,应用程序会冻结大约一两秒钟.通过冻结我的意思是它不响应UI上的触摸.此外,如果我已经播放了一首歌曲,然后将另一首歌曲添加到队列中,AVQueuePlayer则会自动开始预加载该歌曲,同时它仍在播放第一首歌曲.这使得应用程序不会响应UI上的触摸两秒钟,就像添加第一首歌但歌曲仍在播放时一样.所以这意味着AVQueuePlayer在主线程中做了一些导致明显"冻结"的事情.

insertItem:afterItem:用来添加我的AVPlayerItem.我测试并确保这是造成延迟的方法.也许它可能是在将它添加到队列AVPlayerItem时被激活的东西AVQueuePlayer.

必须指出我使用Dropbox API v1 beta通过使用此方法调用来获取流式URL:

[[self restClient] loadStreamableURLForFile:metadata.path];
Run Code Online (Sandbox Code Playgroud)

然后,当我收到流URL时,我将其发送到AVQueuePlayer如下:

[self.player insertItem:[AVPlayerItem playerItemWithURL:url] afterItem:nil];
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:我该如何避免这种情况?我应该在没有帮助的情况下自己预加载音频流AVPlayer吗?如果是这样,我该怎么做?

谢谢.

dropbox audio-streaming ios avplayer avqueueplayer

46
推荐指数
3
解决办法
1万
查看次数

从音频流中获取元数据

我想获取文件名,如果可能的话,从AVPlayerItem中的流媒体URL获取专辑图像,我正在使用AVQueuePlayer,但我不知道该怎么做.

另外,如果事实证明我的流媒体网址没有任何元数据,我可以在将元数据NSURL*传递给AVPlayerItem之前将元数据放入我的数据库吗?

谢谢.

metadata audio-streaming ios4 ios avqueueplayer

11
推荐指数
1
解决办法
1万
查看次数