2013-01-18 3 views
1

최근 iOS 응용 프로그램 개발 작업을 시작했습니다. 요즘 나는 다음과 같은 기능을 가지고 있어야 음악 플레이어에서 일하고있다 :http 링크에서 mp3 형식의 iOS6 앱에서 노래를 재생하는 방법은 무엇입니까?

- PHP 웹 서비스에서 노래의 온라인 버퍼링. - 재생, 일시 중지, 정지, 다음 노래, 이전 노래. - 두 개의 슬라이더 중 하나는 볼륨 조절 용이고 다른 하나는 노래 재생 시간 표시 용입니다. - 셔플, 반복 ​​노래.

AVPlayer 및 AVAudioPlayer에서 이러한 작업을 시도했지만 AVAudioPlayer에서는 AVPlayer를 사용하여 많은 작업을 시도했지만 볼륨 컨트롤과 같은 옵션을 지원하지 않기 때문에 URL에서 데이터를 스트리밍 할 수 없습니다. 심지어 버퍼링은 어떤 시점에서 버퍼링이 멈 추면 재생 버튼을 다시 눌러야하는 것처럼 적절하지 않습니다. 이 오디오 플레이어의 튜토리얼에 대한 긴급한 도움이 필요합니다. 필자는이 분야에서 새로운 것으로 쉽게 이해할 수 있습니다. 다음은 클래스로 위에서 언급 한 나는 기능을했던 내가있는 viewDidLoad

-(void) setupAVPlayerForURL: (NSURL*) url { 
AVAsset *asset = [AVURLAsset URLAssetWithURL:url options:nil]; 
AVPlayerItem *anItem = [AVPlayerItem playerItemWithAsset:asset]; 

audioPlayer = [AVPlayer playerWithPlayerItem:anItem]; 
[audioPlayer addObserver:self forKeyPath:@"status" options:0 context:nil]; 

에서이 노래를 부르고

NSURL *url = [[NSURL alloc] initWithString:@"http://www.androidmobiapps.com/extrememusic/app/songs/1.mp3"]; 

[self setupAVPlayerForURL:url]; 

코드}

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { 

if (object == audioPlayer && [keyPath isEqualToString:@"status"]) { 
    if (audioPlayer.status == AVPlayerStatusFailed) { 
     NSLog(@"AVPlayer Failed"); 
    } else if (audioPlayer.status == AVPlayerStatusReadyToPlay) { 
     NSLog(@"AVPlayer Ready to Play"); 
    } else if (audioPlayer.status == AVPlayerItemStatusUnknown) { 
     NSLog(@"AVPlayer Unknown"); 
    } 
} 

}

답변

0

입니다 , 그리고 오픈 소스 그것. 클래스를 직접 사용하거나 AVFoundation 초보자 용 예제로 취급하고 싶습니다. 행운을 빕니다!

GitHub 에서이 레포보기 here

관련 문제