3

AVPlayerを使用して、添付されたローカル ファイルを再生する基本的な iOS アプリがありますMTAudioProcessingTapUIAlertViewカスタム URL をアプリのプレイリストに追加できるようにするテキスト フィールドを含むポップアップを追加しましたが、 を使用してアラートを表示すると[alert show]、オーディオ システムに障害が発生します。トラックが再生される前にアラートを表示し、トラックの再生を開始してから再度アラートを表示すると、正常に機能します — 最初のショーで CPU スパイクのペナルティがあるかのように (インストゥルメントには何も表示されませんが) )。

アラート:

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Play Remote Track"
                                                message:@"Enter the address."
                                               delegate:self
                                      cancelButtonTitle:@"Cancel"
                                      otherButtonTitles:@"Play", nil];

alert.alertViewStyle = UIAlertViewStylePlainTextInput;

[alert show];

エラー:

  • ログ メッセージ:<ClientProcessingTapManager> AudioQueueProcessingTapGetSourceAudio posting message to kill mediaserverd (36078)
  • MTAudioProcessingTapGetSourceAudio()268451843は、次のパケットでステータス コードを返します268435459

更新: この問題はデバッグ中にのみ発生するため、ショーストッパーではないことが判明しました。しかし、私はまだその根底に到達することに興味があります.

4

2 に答える 2

1

これを寝かせるだけで、最終的にはパフォーマンスの問題であると結論付けました。私が遭遇した他のすべての状況では、プロセスループAudioQueueProcessingTapGetSourceAudio posting message to kill mediaserverd (36078)内で「多すぎる」作業を行っているときに呼び出されるようです。MTAudioProcessingTap私の場合、 を表示するUIAlertViewことは、デバイスを端から押し上げていたと思います。

何が「多すぎる」作業を構成するかについては、私にはわかりませんMTAudioProcessingTap. アプリをテストしたいくつかのデバイスでは、全体の CPU が約 20% になるまでオーディオ ループで実行される作業を増やすことができました。その後、キル メッセージが表示され、タップは処理中のコールバックの呼び出しを停止しました。人為的に課された制限であるか、何らかの理由で CPU の使用量に関係なく、プロセス ループがリアルタイムの保証を満たせなかった可能性があります。

于 2014-01-03T16:05:56.320 に答える
1

これを試して:

#import <dispatch/dispatch.h>

dispatch_async(dispatch_get_main_queue(), ^{
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Play Remote Track"
                                            message:@"Enter the address."
                                           delegate:self
                                  cancelButtonTitle:@"Cancel"
                                  otherButtonTitles:@"Play", nil];

        alert.alertViewStyle = UIAlertViewStylePlainTextInput;

        [alert show];
});

それでも問題が解決しない場合は、MTAudioProcessingTap Audio Processor Sample Codeを調べてみてください。ビデオの表示中に AlertView 呼び出しを別の場所に配置しようとしましたが、すべて問題ありませんでした。バグはありません。iPad Simulator v. 6.1 でした。

于 2013-09-05T08:33:04.730 に答える