0

我正在为 Apache Cordova 开发一个插件,该插件将允许通过 Media API 从远程 URL 流式传输音频。

我遇到的问题是,EXC_BAD_ACCESS每当我尝试访问AVPlayer实例上的某些属性时都会收到一个信号。currentTime并且isPlaying是最严重的罪犯。播放器将通过扬声器播放声音,但只要我的代码达到 aplayer.currentTime[player currentTime]它就会抛出错误的访问信号。

[player play];
double position = round([player duration] * 1000) / 1000;
[player currentTime]; //This will cause the signal

我正在使用 ARC,所以我不会发布任何不应该发布的内容。

编辑:

我所做的一切都是在 Cordova 3 CDVSound 类上进行的,作为 iOS 上实际流媒体的概念证明。

原始代码可以在这里找到:https ://github.com/apache/cordova-plugin-media/tree/master/src/ios

我的代码可以在这里找到:

CDVSound.h

CDVSound.m

该方法startPlayingAudioexc_bad_access在第 346 行跳闸。删除第 346 行将导致音频播放,但稍后会在getCurrentPositionAudio调用第 532 行时触发错误访问。

编辑/解决方案

所以事实证明,处理这个问题的最好方法是使用 AVPlayerItem,然后使用player.currentItem.currentTime. 那么真正的问题就变成了,为什么没有记录这种行为AVPlayer,为什么它的行为是这样的?

4

0 回答 0