1

ドキュメントによると、リンガースイッチがオフに設定されていてもサウンドを再生できるようにする正しい方法は次のとおりです。

 UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;

    AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);

次に、アプリ全体で、完全に再生される短い wav ファイルを再生します

AudioServicesPlaySystemSound(sysSound)

....リンガーがオフになるまで、そして....沈黙?

リンガーがオフの場合、何をしてもサウンドを再生できませんか?

どなたか……どうぞ?

4

2 に答える 2

0

AudioSessionSetActive(YES);を使用してみましたか。最後に?

于 2011-07-27T03:21:32.460 に答える
0

私の経験では、呼び出し音がオフになっている間、AudioServicesPlaySystemSound は再生されません。代わりに AVAudioPlayer を使用してサウンドを再生すると、探している動作が得られるはずです。

let player: AVAudioPlayer = try AVAudioPlayer(contentsOf: url)
player.delegate = self
player.play()

まだオーディオ セッションを有効にしていない場合は、再生する前に有効にする必要もあります。そして、あなたがすでに行ったように、無音状態のサウンドをサポートするオーディオ セッション カテゴリを設定します。バッテリー寿命を節約するために、オーディオが再生されていないときにオーディオ セッションを停止することを検討してください。

AudioServices と AVAudioPlayer の顕著な違いは、呼び出し音が無音の場合、AudioServices の再生はすぐに戻るのに対し、AVAudioPlayer は完了する前にサウンドの全長を取得することです。私の知る限り、ユーザーの呼び出し音の設定を検出して応答する唯一の方法は、AVAudioPlayer の代わりに AudioServices を使用することです。黙っている間にプレイしたいだけなら、これは関係ありません。

于 2018-05-29T15:15:42.600 に答える