我到处搜索但我无法找到问题的答案。
我在我的应用上播放多个声音,然后让用户通过按钮调节音量。因此,如果用户想要,他可以使用.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音量播放,静音。
有没有办法用按钮做到这一点?
谢谢!
答案 0 :(得分:2)
您将volumeSaved
声明为指向整数而不是整数的指针,然后将其指定为整数。这是一个奇怪的事。
但您真正的问题是AVAudioPlayer
中的volume
property是float
,而不是int64_t
。因此,将类型更改为:
float volumeSaved;
答案 1 :(得分:-1)
尝试使用NSNumber存储卷。