Media API を介してリモート URL からのオーディオ ストリーミングを可能にする Apache Cordova 用のプラグインに取り組んでいます。
私が経験している問題は、インスタンスEXC_BAD_ACCESS
の特定のプロパティにアクセスしようとするたびにシグナルを受け取ることです。そして最悪の犯罪者です。プレーヤーはスピーカーからサウンドを再生しますが、コードが到達するとすぐに、または悪いアクセス信号をスローします。AVPlayer
currentTime
isPlaying
player.currentTime
[player currentTime]
[player play];
double position = round([player duration] * 1000) / 1000;
[player currentTime]; //This will cause the signal
私は ARC を使用しているので、公開してはいけないものは公開していません。
編集:
私が行ったことはすべて、iOS での実際のストリーミングの概念実証として、Cordova 3 CDVSound クラスをハッキングしてきました。
元のコードはここにあります: https://github.com/apache/cordova-plugin-media/tree/master/src/ios
私のコードはここにあります:
メソッドstartPlayingAudio
は行 346 でトリップexc_bad_access
します。行 346 を削除すると音声が再生されますが、後でgetCurrentPositionAudio
行 532 が呼び出されたときに不正なアクセスがトリップします。
編集/解決策
したがって、これを処理する最善の方法は、AVPlayerItem を使用してから .xml でアクセスすることplayer.currentItem.currentTime
です。本当の問題は、なぜこの動作が文書化されておらず、なぜこのAVPlayer
ように動作するのかということです。