最近、iOSアプリケーションの開発に取り組み始めました。最近、私は次の機能を備えている必要がある音楽プレーヤーに取り組んでいます:
-phpWebサービスからの曲のオンラインバッファリング。-再生、一時停止、停止、次の曲、前の曲。-2つのスライダー。1つはボリュームコントロール用で、もう1つは曲の再生時間を表示するためのものです。-シャッフル、リピート曲。
私はAVPlayerとAVAudioPlayerでこれらのことを試しましたが、AVAudioPlayerではURLからデータをストリーミングすることはできません。私はたくさん試したので、AVplayerを使用してこれを行いましたが、ボリュームコントロールなどのオプションをサポートしていません。ある時点でバッファリングが停止した場合に再生ボタンをもう一度押す必要があるなど、バッファリングも適切ではありません。私はこの分野で新しいので私が簡単に理解できるどんなチュートリアルでもこのオーディオプレーヤーのために緊急の助けを必要としています。これがコードです
NSURL *url = [[NSURL alloc] initWithString:@"http://www.androidmobiapps.com/extrememusic/app/songs/1.mp3"];
[self setupAVPlayerForURL: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];
}
- (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");
}
}
}