문제

알겠습니다. 두 가지 문제가 있습니다. avaudioplayer를 사용하여 .CAF 형식의 간단한 오디오 파일을 재생하고 있습니다. 내가하려는 것은 재생 및 일시 정지 버튼이 있다는 것입니다. 다음은 버튼에서 오디오를 재생하는 간단한 ibaction 샘플입니다.

- (IBAction) clear {
NSString *path = [[NSBundle mainBundle] pathForResource:@"clear" ofType:@"caf"];
AVAudioPlayer* myAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
myAudio.delegate = self;
myAudio.volume = 1.0;
myAudio.numberOfLoops = 0;
[myAudio play]; 
}

그래서 내가 계속해서 방법으로 또 다른 ibaction을 만들 때 ...

- (IBAction) stopaudio {
[myAudio stop];
audioPlayer.currentTime = 0;
}

나는 컴파일하고 xcode는 stopaudio ibaction의 MyAudio가 정의되지 않았다고 말합니다. 다른 ibaction에서 MyAudio에 액세스 할 수 있도록 어떻게 수정합니까?

두 번째 질문은 NavigationController를 사용하여 TableView를 설정하는 것입니다. 선택을 할 때 TableView로 돌아 가기 위해 뒤로 버튼이있는 UIView로 이동합니다. 내가하려는 것은 테이블 뷰로 돌아갈 때 UIVIEW에서 연주 한 오디오를 죽이는 것입니다. 위의 코드는 UIView에 가질 코드의 일부입니다.

또한 한 가지 빠른 질문. 1 분 길이의 오디오 파일이 있다고 가정 해 봅시다. 재생을 다시 클릭하면 이전 인스턴스가 재생되기 전에 해당 오디오의 새 인스턴스가 겹치게됩니다. MyAudio가 재생이 끝날 때까지 MyAudio가 재생되고 다시 플레이 할 수 없는지 확인하려면 어떻게해야합니까?

감사합니다!

도움이 되었습니까?

해결책

우선, 문서를 읽어야합니다. 거의 모든 질문을 제거합니다. 그럼에도 불구하고, 클래스의 모든 방법에서 Avaudioplayer 인스턴스에 액세스하려면 .h 파일에서 정의해야합니다. 플레이어가 이전 화면으로 돌아 오면 전화를 멈추려면 [myAudio stop] 당신의 viewWillDisappear:(BOOL)animated 방법. 마지막 질문에 대해. 당신이 정의하는 경우 myAudio .h 파일에서 지금 재생 중인지 확인할 수 있습니다. smth 좋아요

- (IBAction) clear {
    if(![myAudio isPlaying]){
        [myAudio play]; 
    }

}

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top