在这里给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:0 context: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 CMTimeGetSeconds(self.worksPlayer.currentItem.duration);

06.

}

07.

else

08.

{

09.

return(CMTimeGetSeconds(kCMTimeInvalid));

10.

}

11.

}

12.

- (NSTimeInterval) playableCurrentTime

13.

{

14.

AVPlayerItem * item = self.worksPlayer.currentItem;

15.

16.

if (item.status == AVPlayerItemStatusReadyToPlay) {

17.

NSLog(@"%f\n",CMTimeGetSeconds(self.worksPlayer.currentItem.currentTime));

18.

if (!playBeginState&&CMTimeGetSeconds(self.worksPlayer.currentItem.currentTime)==CMTimeGetSeconds(self.worksPlayer.currentItem.duration)) {

19.

[streamer stop];

20.

}

21.

playBeginState = NO;

22.

return CMTimeGetSeconds(self.worksPlayer.currentItem.currentTime);

23.

}

24.

else

25.

{

26.

return(CMTimeGetSeconds(kCMTimeInvalid));

27.

}

28.

}

IOS利用AVPlayer开发多媒体在线播放器相关推荐

  1. iOS开发:音乐播放器

    /******************       iOS开发:音乐播放器     *****************/ 要求:给button一个触发事件,点击一下播放歌曲,显示暂停提示: 再点击一下 ...

  2. Java实现简单在线播放器——支持优酷和土豆

    今天本来是打算继续写"Java新浪微博客户端开发"的,也实现了"系统托盘","点击查看大图"的功能,写到一半,想起上篇博文中有CSDN有一网 ...

  3. M3U8文件简介及在线播放器

    m3u8文件格式 M3U8是Unicode版本的M3U,用UTF-8编码."M3U" 和 "M3U8" 文件都是苹果公司使用的 HTTP Live Stream ...

  4. 基于android平台多媒体播放器的设计与实现,基于Android的多媒体音乐播放器设计论文...

    中图分类号:TP317 文献标识码:A 文章编号:1009-3044(2016)03-0240-02 随着计算机网络与手机的迅速发展,各种音乐资源成为人们生活中必不可少的一部分,音乐播放软件成了手机必 ...

  5. 微信PHP开发《音乐播放器》

    文章目录 前言 一.简介 二.引入Vant框架 1.引入库 2.需要用到的知识 三.页面编写,以及js的实现 1.首页 2.搜索页 3.获取搜索歌曲 4.播放页 5.榜单列表页 6.对应页面的json ...

  6. 基于嵌入式linux的音乐播放器设计,基于嵌入式Linux的多媒体音乐播放器的设计与实现...

    中图分类号:TP316.5 文献标识码:A 文章编号:1009-2552(2009)06-0102-03 基于嵌入式Linux的多媒体音乐播放器的设计与实现 王 奇 (黑龙江八一农垦大学信息技术学院, ...

  7. 在线播放器 在网页中插入MediaPlayer 兼容IE和FF的代码调试

    <!– 在线播放器 在网页中插入MediaPlayer 兼容IE和FF的代码调试 Internet Explorer 和 Netscape 都支持 <embed> 元素,但它不是标准 ...

  8. .net vue漂亮登录界面_基于 electron-vue 开发的音乐播放器「实践」

    作者:XiaoTuGou 转发链接:https://github.com/SmallRuralDog 前言 基于 electron-vue 开发的音乐播放器,界面模仿QQ音乐. 技术栈electron ...

  9. Android应用开发--MP3音乐播放器滚动歌词实现

    Android应用开发--MP3音乐播放器滚动歌词实现 2013年6月2日  简.美音乐播放器开发记录 -----前话 有网友给我博客评论说,让我借鉴好的Android代码,代码贴出来的时候最好整体先 ...

最新文章

  1. Java8的集合:LinkedList的实现原理
  2. 虚拟存储:迈向私有云的关键一步
  3. ERP项目管理,哪一环才是关键节点?
  4. Win10 IoT 10 中文显示乱码或报错的问题
  5. phaser java_死磕 java同步系列之Phaser源码解析
  6. 重新认识一遍JavaScript - 2
  7. 【转】Linux 移动或重命名文件/目录-mv 的10个实用例子
  8. Android 12 重磅亮相!阔别 2 年的 Google I/O 开发者大会回来了
  9. 在线CSS3压缩美化格式化
  10. 5.1 百度寻人 ios解析   和     天气预报解析
  11. 炫酷文字消失动画网站404页面源码
  12. 程序员如何写简历之项目篇(二)
  13. Xbox One Dance Central Spotlight 歌曲列表
  14. SOF-SLAM:一种面向动态环境的语义视觉SLAM(2019,JCR Q1, 4.076)
  15. Codeforces Edu Hacking
  16. MOV AX,BX和MOV AX,[BX]的区别
  17. MySQL的SQL基础(五)
  18. 什么是SSR服务端渲染
  19. iOS 保持APP在后台长时间运行
  20. 为什么说php是个玩具,买玩具的目的是什么

热门文章

  1. 五年后的你想做什么? (----以此作开博纪念,送给朋友们!---)
  2. 高并发限流:8个步骤快速解决高并发问题!
  3. python使用localStorage.setItem()写入本地存储转义符的问题
  4. 怎样实现大整数相加?
  5. Codeforces - Parking Lot
  6. 从CSDN博客专家变动引发的随想
  7. 关于万向锁(Gimbal lock)问题的理解及解决
  8. 精雕细琢!阿里打磨出来的 MyBatis+设计模式 架构指南
  9. 画面撕裂、卡顿、垂直同步
  10. android layout v19,android-复制API 19之前的RelativeLayout.LayoutParam...