4

警告音がします。「うるさくて」びっくりさせたくないので、[NSSound setVolume] を介して、うるさくない可聴音量に減らします。

しかし、音量が現在のシステム音量に対して相対的に設定されているようです。したがって、最大システム音量の場合に音量を下げると、システム音量が低い場合には聞こえません。

私が使用する場合:[sound setVolume:0.1];

システムが最大音量に設定されている場合、それは素晴らしい音です。ただし、システムボリュームが 1/3 の場合はまったく聞こえません。

基本的に、サウンドの最大音量を設定したいと思います。システムの音量がそれより大きい場合は、事前に設定した最大音量で再生されます。ただし、システム ボリュームがそれを下回ると、システム ボリュームに応じて低下します。

このような:

システム = 1
-サウンド = .3

システム = .7
-サウンド = .3

システム = .3
-サウンド = .3

システム = .2
-サウンド = .2

これを行う唯一の方法は、システムのオーディオ ボリュームを手動で確認し、それに応じてサウンドを設定することですか?

4

4 に答える 4

1

私の正確な元の質問に対する答えではありませんが、それが導く場所: ユーザーの「アラート音量」とアラートサウンドデバイスを尊重する「システムサウンド」としてサウンドファイルを再生します:

http://iosdeveloperzone.com/2011/05/23/snippet-playing-a-system-sound/

// Required import... Also need AudioToolbox.framework
#import <AudioToolbox/AudioToolbox.h>

// ivar 
SystemSoundID mBeep;

// Create the sound ID
NSString* path = [[NSBundle mainBundle] 
                     pathForResource:@"Beep" ofType:@"aiff"];
NSURL* url = [NSURL fileURLWithPath:path];
AudioServicesCreateSystemSoundID((__bridge CFURLRef)url, &mBeep);

// Play the sound
AudioServicesPlaySystemSound(mBeep);

// Dispose of the sound
AudioServicesDisposeSystemSoundID(mBeep);
于 2012-09-26T23:37:20.887 に答える
1

NSSound のボリュームは、QuickTime Player や iTunes などに表示されるボリューム スライダーに対応します。これは、システム ボリュームとは別の (ご覧のように) システム ボリュームに従属する特定のサウンドのボリュームです。

Audio Hardware API を照会することで、現在のシステム ボリュームを取得できます。デフォルトのサウンド出力デバイスを取得してから、その音量を取得します。次に、希望の音量レベルよりも高いか低いかを調べることができます。

(実際にはグローバルな「システム ボリューム」は 1 つではありません。2 つの既定の出力デバイスと任意の数の具体的な出力デバイスがあり、それぞれに独自のボリュームがあります。「システム ボリューム」は通常、既定の出力を指します。デバイスのボリューム。)

ただし、これはシステム上の他のアプリケーションがどのように機能するかではないことに注意してください。したがって、この動作はユーザーには予測できないように見えます。「システムの音量が特定のレベルを超えると、音量スライダーが機能しない」という行に沿ったバグ レポートが予想されます。

于 2012-09-23T18:54:50.403 に答える
1

私はそう思います (サウンドの再生中にユーザーがシステムのサウンド ボリュームを変更するとどうなるかを考えてみてください)。

ユーザーが設定できるようにすることもできます。多くの場合、高価なヘッドフォンは非常に敏感です (つまり、うるさい)。スケールが線形の場合、0.1 が大きいと思います。

于 2012-09-22T22:44:10.733 に答える
-1

システム音量を設定することはできません。Objective-C のレベルがどれほど低くても、相対的な音量レベルしか設定できません。coreaudio でも相対的なレベルしか設定できません。

GW

于 2012-09-23T01:06:32.203 に答える