使用按钮设置AVAudioPlayer音量

时间:2012-05-14 18:25:40

标签: iphone ios avfoundation avaudioplayer

我到处搜索但我无法找到问题的答案。

我在我的应用上播放多个声音,然后让用户通过按钮调节音量。因此,如果用户想要,他可以使用.5音量。所以我有这个代码:

NSString *path = [[NSBundle mainBundle] pathForResource:@"Orchestra" ofType:@"mp3"];
theOrchestras = [[AVAudioPlayer alloc] initWithContentsOfURL: [NSURL fileURLWithPath: path] error: NULL];
[theOrchestras play];

并减少音量:

- (IBAction) volumeReduced  {
    theOrchestras.volume = 0.5;
}

播放声音时音量减小,没问题。但是当声音停止并再次播放时,音量总会回到1.

要解决此问题,我尝试将卷保存为整数,但由于某种原因,该值始终为0,我无法使其正常工作:

的.m

 int64_t * volumeSaved;

.h

- (IBAction) volumeReduced  {
    volumeSaved = .5;
}

NSString *path = [[NSBundle mainBundle] pathForResource:@"Orchestra" ofType:@"mp3"];
theOrchestras = [[AVAudioPlayer alloc] initWithContentsOfURL: [NSURL fileURLWithPath: path] error: NULL];
theOrchestras.volume = volumeSaved;
[theOrchestras play];

但音频现在总是以0音量播放,静音。

有没有办法用按钮做到这一点?

谢谢!

2 个答案:

答案 0 :(得分:2)

您将volumeSaved声明为指向整数而不是整数的指针,然后将其指定为整数。这是一个奇怪的事。

但您真正的问题是AVAudioPlayer中的volume propertyfloat,而不是int64_t。因此,将类型更改为:

float volumeSaved;

答案 1 :(得分:-1)

尝试使用NSNumber存储卷。