0

SystemSound のフレームワークを使用して、アプリケーションでサウンドを再生しています。IOS3 を搭載したデバイスでは、正しく機能しています。しかし、最近オペレーティング システムを IOS4 に更新したところ、ボリュームに奇妙な問題が発生しています。ゲーム中にサウンドの音量を変更できないようになりました。このフレームワークは呼び出し音の音量を使用しているようで、アプリケーション内でこの音量を変更することはできません。それについていくつか質問があります。

  1. それは予想される動作ですか、それともコードに問題がある可能性がありますか?
  2. まず、なぜこれが IOS4 デバイスで発生し、以前のバージョンでは発生しないのか。
  3. 別のフレームワークを使用せずに修正する回避策はありますか?

私が使用しているコードは次のようなものです:

SystemSoundID aSoundID;
OSStatus error = AudioServicesCreateSystemSoundID((CFURLRef)aFileURL, &aSoundID);

if (error == kAudioServicesNoError)
     self.soundID = aSoundID;
.

.

.

AudioServicesPlaySystemSound(self.soundID);

助けていただければ幸いです。

ありがとう、

フアン・パブロ

4

2 に答える 2

2

私自身は音声を使用したことはありませんが、関連していると思われるいくつかの興味深いものを見つけました (まだ誰もあなたの質問に実際に答えていないことを見て)。

私はこの問題を誤解しているかもしれませんが、この質問の回答によると、システムサウンドを再生している場合、それをあまり制御できません。

ただし、AVAudioPlayer クラスには、サウンドやボリュームなどを制御するために必要なものがすべて含まれている必要があります。プロパティだけでなく、、、およびメソッドを使用してみてください-initWithContentsOfURL:error:–prepareToPlay目的-playvolume場所に到達できると思います。

于 2010-07-08T19:43:44.063 に答える
0

1 & 2) iOS 4 でも同じ問題がありました。これは 4.0 以降で予想される動作だと思います。セッション カテゴリを設定していなかったことが原因であることがわかりました。

3)私は次のことを行いましたが、現在は機能しています。

NSError *setCategoryError = nil;  
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: &setCategoryError];  

if (setCategoryError) { 
 //handle error
}

http://developer.apple.com/library/ios/#documentation/Audio/Conceptual/AudioSessionProgrammingGuide/Cookbook/Cookbook.html#//apple_ref/doc/uid/TP40007875-CH6-SW6

于 2010-10-13T00:43:02.590 に答える