avaudioplayer를 사용하여 오디오를 중지하는 데 도움이됩니다
-
19-09-2019 - |
문제
알겠습니다. 두 가지 문제가 있습니다. 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]; }
}