设置单独的应用程序音量控

时间:2012-09-28 08:19:40

标签: objective-c macos cocoa

如何控制应用的输出音量。

我有一个使用https://github.com/mattgallagher/AudioStreamer从互联网流式播放mp3文件的应用。 AudioStreamer类无法更改输出音量,我也不想更改系统音量。

许多应用都是这样做的:

  • 的iTunes
  • Spotify的
  • MPlayerX
  • 大多数音频播放器

编辑:如果您听说过AudioStreamer,我已经切换到Apple的AVPlayer,我发现它更加简单和优越。轻松调节音量!

2 个答案:

答案 0 :(得分:2)

AudioStreamer我猜大多数OSX媒体播放器都使用AudioToolbox框架。 AudioToolbox使用名为AudioQueue的编程接口来播放媒体文件。以下是使用AudioQueue调整音量的方法。

AudioQueueSetParameter(audioQueue, kAudioQueueParam_Volume, 0.5);
  • audioQueue是一个AudioQueRef
  • kAudioQueueParam_Volume告诉AudioQueueSetParameter()更改音量参数
  • 0.5是0.0 - 1.0
  • 的音量

有关AudioQueue的更多详情:https://developer.apple.com/library/mac/#documentation/MusicAudio/Reference/AudioQueueReference/Reference/reference.html

答案 1 :(得分:0)

您可以使用AVAudioPlayer,它有一个实例方法setVolume:来设置输出音量:

AVAudioPlayer * audioPlayer = ...
float volume = aVolumeValue / 100.f; // aVolumeValue can be 0~100
[audioPlayer setVolume:volume];
[audioPlayer play];

顺便说一下,您可以将aVolumeValue存储到NSUserDefaults中,并通过UISlider对象控制它。