我设备上的音量不影响音量

Posted

技术标签:

【中文标题】我设备上的音量不影响音量【英文标题】:Volume on my device doesn't effect the volume 【发布时间】:2014-07-07 05:21:46 【问题描述】:

.h

SystemSoundID sound1;

.m

NSURL *soundURL1 = [NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@"Woosh" ofType:@"mp3"]];

AudioservicesCreateSystemSoundID((__bridge CFURLRef)soundURL1, & sound1);

AudioServicesPlaySystemSound(sound1);

这是我用来播放 Woosh.mp3 声音的唯一代码。我在 iPad 上运行该应用程序,当我更改设备上的音量时,声音的音量没有改变。我想知道是否有另一种方法可以在应用程序中实现声音,或者以这种方式添加改变音量的功能。

【问题讨论】:

要播放音频文件,您可以使用 audioplayer 控制器或 MPMoviePlayerController,这样您也可以在其中管理音量 【参考方案1】:
NSURL *soundurl   = [[NSBundle mainBundle] URLForResource: @"mysound" withExtension: @"caf"];
AVAudioPlayer *mySoundPlayer =[[AVAudioPlayer alloc] initWithContentsOfURL:soundurl error:&error];
mySoundPlayer .volume=1.0f; //between 0 and 1
[mySoundPlayer prepareToPlay];
mySoundPlayer.numberOfLoops=0; //or more if needed
[mySoundPlayer play];

【讨论】:

感谢这个方法有效,但是在第二行的末尾你输入了“&error”,这一直在 Xcode 上显示一条错误消息,所以我将它更改为“nil”,它似乎运行良好现在。 你也可以写 nil 或者你可以写 &error 并且首先你需要声明 "NSError* error = nil;" .这是为了在分配 AvAUdioPlayer 对象时发生错误

以上是关于我设备上的音量不影响音量的主要内容,如果未能解决你的问题,请参考以下文章

更改 iPad 音量不影响 App

iPod 音量级别影响应用程序音量级别

如何使音量键对 Audioplyer Sound 没有影响

Chromecast-音量进度条在电视上可见,但在我的 android 移动设备上不可见

WP7 设备上的设备主音量

AudioServicesPlaySystem音量控制