2011-09-30 2 views
3

오디오 파일과 해당 오디오 파일의 특정 세그먼트에 대한 시간 정보 모음 인 startTime 및 endTime이 있다고 가정 해보십시오. 내가하고 싶은 일은 오디오 파일을 처음부터 재생하고 파일을 통해 세그먼트별로 이동시키는 것입니다. 1.0s, endTime- 사용자 : 3.4s 세그먼트 2 - startTime을 : 3.4s, endTime- 사용자 : 5.0s 세그먼트 - startTime을iOS에서 다양한 시간에 오디오 파일 재생 및 일시 중지

세그먼트 1 :

따라서, 예를 들어, 나는 다음과 같은 데이터가 있다고 가정 해 봅시다 3 - startTime : 7.8s, endTime : 9.5s ...

세그먼트별로 세그먼트별로 오디오 파일을 순차적으로 재생하고 싶습니다. 파일로 1.0 초를 시작하고 3.4 초가 될 때까지 재생 한 다음 일시 중지하고 사용자가 버튼을 누를 때까지 기다립니다. 사용자가 버튼을 누르면 3.4 초에서 5.0 초, 7.8 초에서 9.5 초 등으로 재생됩니다.

사용자는 오디오를 '스크럽'할 수 있습니다 세그먼트 사이의 갭), 그래서 내가 순차적으로 연주하더라도, 이전 세그먼트로 돌아갈 가능성이 존재한다.이 경우,이 프로세스는 반복 될 것이다 (즉, 사용자가 이전 또는 이후 세그먼트로 문질러 쓸 때 해당 세그먼트의 끝 부분에 도달 함).

이 목표를 달성하는 가장 좋은 방법은 무엇입니까? AVAudioPlayer를 사용할 수있는 것 같지만, currentTime을 반복적으로 폴링하는 것 이외에는 endTime에서 정확하게 일시 중지 할 수있는 방법이 없습니다. AVPlayer와 AVPlayerItem은 또 다른 가능성처럼 보입니다. 그러나 설명서를 이해하면 한 번에 플레이어 항목이 하나 뿐이므로 ... 나는 스크러빙 기능을 작동시키기 위해 AVPlayerItems를 교체해야 할 필요가 있다고 가정합니다.

이 목표를 가장 잘 달성하는 방법에 대한 제안이 있습니까?

답변

0

내 머리 꼭대기에서 파일을 개별 세그먼트로 분할하고 원하는 시간에 재생하거나 AVAudioPlayer의 기능 [(오디오 플레이어 이름) 일시 중지]를 사용하여 일시 중지하십시오. [(오디오 플레이어 이름) 재생]을 사용하여 버튼 내부가 위로 올라 오면 재생을 다시 시작합니다.

+1

하나의 파일 만 사용하는 솔루션을 찾고 있습니다. 또한 오디오 파일을 일시 중지하고 재생하는 방법을 알고 있습니다. 어쩌면 폴링이 최선의 해결책 일지 모르지만 특정 값에 대해 currentTime을 폴링하는 것보다는 특정 시간이 지난 후 일시 중지하는 방법이 있으면 관심이 있습니다. –

+0

[이 시도하십시오] (http://stackoverflow.com/a/13134000/3577656). [Prince] (http://stackoverflow.com/users/1106035/prince)의 아이디어를 사용하여 AVPlayer를 사용하여 일시 중지하고 재생할 수있었습니다. – Rajal

관련 문제