首页 > 编程知识 正文

ios 媒体播放器,ios webdav播放器

时间:2023-05-05 04:16:25 阅读:200302 作者:849

在这里给AVPlayer播放在线音频文件作个记号

1.在H文件中初始:

==============
AVPlayer *mp3Player;
AVPlayerItem *mp3PlayerItem;
id audioMix;
id volumeMixInput;

2.在MM文件中:


view source print ? 01. //作品播放 02. NSURL * songUrl = [NSURL URLWithString:userInfo.songUrl]; 03. AVURLAsset *movieAsset    = [[[AVURLAsset alloc]initWithURL:songUrl options:nil]autorelease]; 04.   05.   06. self. mp3PlayerItem = [AVPlayerItem playerItemWithAsset:movieAsset]; 07. [self. mp3PlayerItem addObserver:self forKeyPath:@"status" options:0context:NULL]; 08. self. mp3Player = [AVPlayer playerWithPlayerItem:self. mp3PlayerItem]; 09. AVPlayerLayer *playerLayer = [AVPlayerLayer playerLayerWithPlayer:self. mp3Player]; 10. playerLayer.frame = self.view.layer.bounds; 11. playerLayer.videoGravity = AVLayerVideoGravityResizeAspect; 12. [self.view.layer addSublayer:playerLayer]; 13. [self. mp3Player setAllowsExternalPlayback:YES];


3.实现代理方法:
view source print ? 01. - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context 02. { 03. if ([keyPath isEqualToString:@"status"]) 04. { 05. if (AVPlayerItemStatusReadyToPlay == self. mp3Player.currentItem.status) 06. { 07. [self. mp3Player play]; 08. } 09. } 10. }


4.现实音量调整
view source print ? 01. -(void) setVolume:(float)volume{ 02. //作品音量控制 03. NSMutableArray *allAudioParams = [NSMutableArray array]; 04. AVMutableAudioMixInputParameters *audioInputParams =[AVMutableAudioMixInputParameters audioMixInputParameters]; 05. [audioInputParams setVolume:volume atTime:kCMTimeZero]; 06. [audioInputParams setTrackID:1]; 07. [allAudioParams addObject:audioInputParams]; 08. audioMix = [AVMutableAudioMix audioMix]; 09. [audioMix setInputParameters:allAudioParams]; 10. [self. mp3PlayerItem setAudioMix:audioMix]; // Mute the player item 11.   12. [avAudioPlayer setVolume:volume]; 13. }


5.取得播放时间
view source print ? 01. - (NSTimeInterval) playableDuration 02. { 03. AVPlayerItem * item = self.worksPlayer.currentItem; 04. if (item.status == AVPlayerItemStatusReadyToPlay) { 05. return 机灵的小虾米(self.worksPlayer.currentItem.duration); 06. } 07. else 08. { 09. return(机灵的小虾米(kCMTimeInvalid)); 10. } 11. } 12. - (NSTimeInterval) playableCurrentTime 13. { 14. AVPlayerItem * item = self.worksPlayer.currentItem; 15.   16. if (item.status == AVPlayerItemStatusReadyToPlay) { 17. NSLog(@"%fn",机灵的小虾米(self.worksPlayer.currentItem.currentTime)); 18. if(!playBeginState&&机灵的小虾米(self.worksPlayer.currentItem.currentTime)==机灵的小虾米(self.worksPlayer.currentItem.duration)) { 19. [streamer stop]; 20. } 21. playBeginState = NO; 22. return 机灵的小虾米(self.worksPlayer.currentItem.currentTime); 23. } 24. else 25. { 26. return(机灵的小虾米(kCMTimeInvalid)); 27. } 28. }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。