2

開発中のiOSアプリで発砲音がしますが、現時点では音の音量はメインの音量ではなく、着信音の音量で制御されています。.caf ファイルだからだと思ったのですが、mp3 に置き換えた後、制御されているボリューム タイプは変更されませんでした。

着信音量のみに適用されると想定しているAudioServicesCreateSystemSoundIDを使用しているためだと思います。

- (IBAction)fire_rifle {
    CFBundleRef mainBundle = CFBundleGetMainBundle();
    CFURLRef soundFileURLRef;
    soundFileURLRef = CFBundleCopyResourceURL(mainBundle, (CFStringRef) @"rifle", CFSTR ("caf"), NULL);
    UInt32 soundID;
    AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID);
    AudioServicesPlaySystemSound(soundID);
}

このコードを変更して、呼び出し音の代わりにメインの音量を使用するにはどうすればよいですか?

4

3 に答える 3

1

チェックアウトすることをお勧めしAVAudioPlayerます。それはメイン ボリュームで動作し、他の便利な方法で再生を調整することができます。

于 2012-07-29T06:28:43.860 に答える
0

他の回答で述べたように、これに使用できますAVAudioPlayer。ただし、サンプルコードは次のとおりです。

<AVAudioPlayerDelegate>

必ず入れてください^^

- (void)myMethod{
        AVAudioPlayer *data;
        NSString *name = [[NSString alloc] initWithFormat:@"mySoundName"];
        NSString *source = [[NSBundle mainBundle] pathForResource:name ofType:@"mp3"];
        if (data) {
            [data stop];
            data = nil;
        }
        data=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath: source] error:NULL];
        data.delegate = self;
        [data prepareToPlay];
                [data play];

}
于 2012-08-11T23:39:47.683 に答える
-1

thisに従って、デバイスの音量をプログラムで変更することはできませんが、MPVolumeView (音量スライダー) はデバイスの音量を変更するためにありますが、ユーザーの操作によってのみ変更できます。

アプリケーション レベルの音量が必要な場合は、AVAudioPlayer があります。この場合、ボリューム プロパティを使用して、アプリケーションのボリューム (デバイスのボリュームではない) をプログラムで設定できます。

于 2012-08-11T23:32:04.363 に答える