MPMoviePlayerController 与AVAudioPlayer有点类似,前者播放视频,后者播放音频,不过也有很大不同,MPMoviePlayerController 可以直接通过远程URL初始化,而AVAudioPlayer则不可以。不过大体上用起来感觉差不多。

在这之前当然要包含库文件的

#import <MediaPlayer/MediaPlayer.h>

1.创建

MPMoviePlayerController 类通过一个NSURL来初始化,这个URL可以使本地的,也可以是远程的。初始化需要通过 initWithContentURL 方法来实现:

下面是一个在线未加密的音乐地址:

  1. NSString * myURL = [NSString stringWithFormat:

    @"http://202.204.208.83/gangqin/download/music/02/03/02/Track08.mp3"];

    MPMoviePlayerController *moviePlayer = [ [ MPMoviePlayerController alloc]

    initWithContentURL:[NSURLURLWithString:myURL]];//远程

当然我们也可以从本地读取:

  1. NSString* path =[ NSString stringWithFormat:
  2. @"%@/Documents/Track08.mp3",NSHomeDirectory()];//本地路径
  3. MPMoviePlayerController *moviePlayer = [ [ MPMoviePlayerController alloc]
  4. initWithContentURL:[NSURL fileURLWithPath:path]];//本地的

下面是MPMoviePlayerController与所带的属性

因为它本身是来播放视频的所以有一些AVAudioPlayer没有的的属性

二、属性设置 
1.控制器样式

  1. moviePlayer.moviewControlMode = MPMovieControlModeDefault;

可以使用下列样式: 
MPMovieControlModeDefault            显示播放/暂停、音量和时间控制 
MPMovieControlModeVolumeOnly         只显示音量控制 
MPMovieControlModeHidden             没有控制器 
2.屏幕宽高比例

  1. moviePlayer.scallingMode = MPMovieScallingModeAspectFit;

你可以使用下列宽高比值: 
MPMovieScallingModeNone            不做任何缩放 
MPMovieScallingModeAspectFit       适应屏幕大小,保持宽高比 
MPMovieScallingModeAspectFill      适应屏幕大小,保持宽高比,可裁剪 
MPMovieScallingModeFill            充满屏幕,不保持宽高比 
3.背景色

背景色会在电影播放器转入转出时使用,当电影不能充满整个屏幕时,

也会用来填充空白区域。默认的背景色是黑色,不过你可以使用 UIColor 对象设置backgroundColor属性,来改变背景色:

  1. moviePlayer.backgroundColor = [UIColor redColor];

三、播放和停止电影 
要播放电影请调用play 方法,电影播放控制器会自动将视图切换到电影播放器并开始播放:

  1. [ moviePlayer play ];

当用户点击Done按钮,或者 stop 方法被调用都会停止

  1. [ moviePlayer stop ];

当电影停止播放后会自动切回播放前应用程序所在的视图。 
四、通知 
你的程序可以配置电影播放器在何时候发送通知,包括结束加载内容、技术播放、改变宽高比等。电影播放器会将事件发送到 Cocoa 的通知中心,你可以对其进行配置,指定将这些事件转发到你的应用程序的一个对象。要接收这些通知,需要使用 NSNotificationCenter 类,为电影播放器添加一个观察者(observer):

  1. NSNotificationCenter* notificationCenter = [NSNotificationCenter defaultCenter];
  2. [ notificationCenter addObserver:self selector:@selector(moviePlayerPreloadFinish:) name:MPMoviePlayerContentPreloadDidFinishNotification object:moviePlayer ];

通知会发到你指定的委托类和目标方法。通知参数让你可以知道是哪个事件触发了委托方法:

  1. -(void)moviePlayerPreloadDidFinish:(NSNotification*)notification{
  2. //添加你的处理代码
  3. }

你会观察到以下通知: 
MPMoviePlayerContentPreloadDidFinishNotification  
当电影播放器结束对内容的预加载后发出。因为内容可以在仅加载了一部分的情况下播放,所以这个通知可能在已经播放后才发出。 
MPMoviePlayerScallingModeDidChangedNotification  
当用户改变了电影的缩放模式后发出。用户可以点触缩放图标,在全屏播放和窗口播放之间切换。 
MPMoviePlayerPlaybackDidFinishNotification  
当电影播放完毕或者用户按下了Done按钮后发出。

用MPMoviePlayerController做在线音乐播放相关推荐

  1. html5做在线音乐,html5实现在线响应式音乐播放器

    大概很早的时候就有想法做一个音乐播放器玩玩,以前可能还考虑过做APP,大一的时候第一个html的静态页面也是做的音乐网站,想想,大概小时候比较喜欢音乐吧.然而,现在入了前端大坑,就用h5做一个耍耍好了 ...

  2. python播放在线音乐_Python实现在线音乐播放器

    最近这几天,学习了一下python,对于爬虫比较感兴趣,就做了一个简单的爬虫项目,使用Python的库Tkinsert做了一个界面,感觉这个库使用起来还是挺方便的,音乐的数据来自网易云音乐的一个接口, ...

  3. python播放网络音乐_python使用Tkinter实现在线音乐播放器

    本文实例使用Tkinter实现在线音乐播放器的具体代码,供大家参考,具体内容如下 1.先使用Tkinter库写界面 2.写点击按钮触发的事件 (1).使用网易音乐的api,返回数据包装成json格式数 ...

  4. MKOnlinePlayer在线音乐播放器

    文章目录[隐藏] 简介 界面欣赏 注意事项 常见问题 简介 MKOnlineMusicPlayer 是一款开源的基于 Meting 的在线音乐播放器.具有音乐搜索.播放.下载.歌词同步显示.个人网易云 ...

  5. python调用默认播放器_python使用Tkinter实现在线音乐播放器

    本文实例使用Tkinter实现在线音乐播放器的具体代码,供大家参考,具体内容如下 1.先使用Tkinter库写界面 2.写点击按钮触发的事件 (1).使用网易音乐的api,返回数据包装成json格式数 ...

  6. Andriod小项目——在线音乐播放器

    Andriod小项目--在线音乐播放器 转载请注明:http://blog.csdn.net/sunkes/article/details/51189189 Android在线音乐播放器 从大一开始就 ...

  7. 在线音乐播放器的推荐机制

    对于我这样一个音乐控来说,学习工作时没有音乐是万万不行的.在网易云音乐云音乐面世之前,我总是在QQ音乐,百度音乐等播放器之间徘徊,当时也不够文艺,不知道豆瓣FM的存在. 第一次接触云音乐被其吸引的原因 ...

  8. 【Java项目实战】在线音乐播放器(从需求到产品完整解析)

    准备工作必看:[Java项目实战]在线音乐播放器(前期准备) 核心功能 登录.注册 上传音乐 删除某一个音乐信息 删除选中的音乐信息 查询音乐(包含查找指定/模糊匹配的音乐) 添加音乐到"喜 ...

  9. python播放网络音乐_Python实现在线音乐播放器示例

    这篇文章主要为大家详细介绍了Python实现在线音乐播放器的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 最近这几天,学习了一下python,对于爬虫比较感兴趣,就做了一个简单的爬虫项目 ...

最新文章

  1. 反射动态调用DLL类库测试
  2. 在网页中嵌入flash之标签
  3. 在WinCE5.0和WinCE6.0下,编译选项介绍
  4. 【Python基础知识-pycharm版】第七节-函数
  5. linux的系统移植——内核启动
  6. linux adduser mysql_linux_adduser
  7. oracle file参数,oracle的参数以及pfile和spfile
  8. Redhat Enterprise Linux 5系统引导故障解决方法
  9. [转载] python中callable_Python callable() 函数
  10. java实验报告心得_Java实验报告(一)及总结
  11. 台式计算机调亮度,台式电脑显示器屏幕亮度怎么调节?
  12. java抽象类计算正方体面积_根据下面的接口和抽象类,去实现一个正方体类(Cube)计算它表面积和体积(必须实现接口和继承抽象类),并...
  13. 太可怕了!有些码农为啥写代码,写到监狱里去了?
  14. Android集成Sentry
  15. ubuntu下dbus工具d-feet不显示路径和接口
  16. CSS3 低多边形(Low Poly)设计及开发实例 - 简单的字母
  17. 阿里云Centos系统下部署静态前端页面
  18. 根据工作日历推算工作日的算法
  19. python第三章_Python学习(第三章)
  20. python中的platform模块获取平台信息

热门文章

  1. 本周游戏体验:卧虎藏龙
  2. 【Minecraft开服】Windows搭建我的世界MC服务器「公网远程联机」
  3. 今日资本总裁徐新:中华英才网CEO历经两次更迭
  4. open用法 vba_vba workbook.open的文件名怎么使用变量
  5. 阿里巴巴实习生招聘电话面试分享
  6. 北京科技大学计算机复试难度,北京科技大学考研难度怎么样
  7. 数据提交的几种常用方法
  8. 我的世界服务器组队系统,我的世界小游戏服务器组队指令 | 手游网游页游攻略大全...
  9. 上海EMBA项目|上国会-美国亚利桑那州立大学合办金融财务EMBA
  10. Python数据结构之字典