酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

AVAudioPlayerを使って再生する際の音量を取得/設定する

AVAudioPlayerクラスを使用して音を鳴らす方法は「AVaudioPlayerで音を鳴らす」でご紹介しています。

鳴らす処理の延長線上となる音量の取得/設定の方法についてご紹介したいと思います。

|objc| // 楽曲ファイルのパスからAudioPlayerオブジェクトを作成 NSString path = path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"wav"]; NSURL url = [NSURL fileURLWithPath:path]; AVAudioPlayer* player= [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];

// AVAudioPlayerオブジェクトのボリュームは0.0〜1.0の間で指定する player.volume *= 0.5; ||<

** 蛇足1

AudioServicesCreateSystemSoundID/AudioServicesPlaySystemSoundで音を鳴らすときの、音量調整の仕方が分かりません。非公開APIを使用すれば調整出来るとのことですが、基本的には音量調整はできないと考えた方が良さそうです。

** 蛇足2

使い道を把握していないので蛇足ですが、MPMusicPlayerControllerクラスの音量を取得する場合のコードをご紹介します。

MediaPlayer.frameworkをリンクするとiPodライブラリを参照するMPMusicPlayerControllerクラスが使用できるようになります。

|objc| MPMusicPlayerController *iPod = [MPMusicPlayerController iPodMusicPlayer]; float volumeLevel1 = iPod.volume;

MPMusicPlayerController *appMP = [MPMusicPlayerController applicationMusicPlayer]; float volumeLevel2 = appMP.volume; ||<

MPMusicPlayerController#iPodMusicPlayerメソッドで取得したオブジェクトのvolumeプロパティはiPodライブラリから選択した楽曲やビデオの生成時の音量だとして、MPMusicPlayerController#applicationMusicPlayerメソッドで取得した音量は何の音量なのかよくわかりません。