0

我到处搜索,但找不到问题的答案。

我在我的应用程序上播放多种声音,并让用户使用按钮调节音量。因此,如果用户愿意,他可以玩 0.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 音量播放,静音。

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

谢谢!

4

2 回答 2

2

您声明volumeSaved为指向整数而不是整数的指针,但随后将其分配给它,就像它是整数一样。这是一个奇怪的地方。

但是您真正的问题是 in 的属性volumeAVAudioPlayera float,而不是 a int64_t。所以将类型更改为:

float volumeSaved;
于 2012-05-14T18:31:37.793 回答
-1

尝试使用 NSNumber 存储卷。

于 2012-05-14T18:29:27.220 回答