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

Objective c 设置单独的应用程序音量控制,objective-c,macos,cocoa,Objective C,Macos,Cocoa,如何控制应用程序的输出音量 我有一个应用程序,用来从互联网上传输mp3文件。AudioStreamer类无法更改输出音量,我不想更改系统音量 许多应用程序都可以做到这一点: iTunes Spotify MPlayerX 大多数音频播放器 编辑:如果你听说过AudioStreamer,我已经改用苹果的AVPlayer,我发现它更简单、更优越。音量调节也很简单 您可以使用AVAudioPlayer,它有一个实例方法setVolume:来设置输出音量: AVAudioPlayer * audio

如何控制应用程序的输出音量

我有一个应用程序,用来从互联网上传输mp3文件。
AudioStreamer
类无法更改输出音量,我不想更改系统音量

许多应用程序都可以做到这一点:

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

编辑:如果你听说过AudioStreamer,我已经改用苹果的AVPlayer,我发现它更简单、更优越。音量调节也很简单

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

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

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

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

AudioQueueSetParameter(audioQueue, kAudioQueueParam_Volume, 0.5);
  • audioQueue
    是一个audioquery
  • kaudioqueparam_Volume
    告诉
    AudioQueueSetParameter()
    更改音量参数
  • 0.5
    是0.0到1.0之间的音量

有关AudioQueue的更多详细信息:

我正在使用OSX和AudioStreamer手柄播放。AVAudioPlayer是否仍然可以调整应用程序的音量?