2012-05-14 6 views
0

나는 어디에서나 검색했지만 내 문제에 대한 답을 찾을 수 없습니다.버튼으로 AVAudioPlayer 볼륨 설정

내 앱에서 여러 사운드를 재생하고 사용자가 버튼을 사용하여 볼륨을 조정할 수 있도록했습니다. 따라서 사용자가 원하는 경우 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

- (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 볼륨으로 재생 .H

int64_t * volumeSaved; 

.

버튼으로이를 수행 할 수있는 방법이 있습니까?

감사합니다.

답변

2

volumeSaved을 정수 대신 정수로 포인터로 선언했지만 정수처럼 할당합니다. 그것은 기이 한 일입니다.

그러나 실제 문제는 의 volume propertyint64_t이 아니라 float입니다. 유형을 다음으로 변경하십시오.

float volumeSaved; 
+0

고마워요! 그것은 작동합니다! :디 – tomDev

-1

NSNumber를 사용하여 볼륨을 저장하십시오.