用MPMoviePlayerController做在线音乐播放
MPMoviePlayerController 与AVAudioPlayer有点类似,前者播放视频,后者播放音频,不过也有很大不同,MPMoviePlayerController 可以直接通过远程URL初始化,而AVAudioPlayer则不可以。不过大体上用起来感觉差不多。
在这之前当然要包含库文件的
#import <MediaPlayer/MediaPlayer.h>
1.创建
MPMoviePlayerController 类通过一个NSURL来初始化,这个URL可以使本地的,也可以是远程的。初始化需要通过 initWithContentURL 方法来实现:
下面是一个在线未加密的音乐地址:
NSString * myURL = [NSString stringWithFormat:
@"http://202.204.208.83/gangqin/download/music/02/03/02/Track08.mp3"];
MPMoviePlayerController *moviePlayer = [ [ MPMoviePlayerController alloc]
initWithContentURL:[NSURLURLWithString:myURL]];//远程
当然我们也可以从本地读取:
- NSString* path =[ NSString stringWithFormat:
- @"%@/Documents/Track08.mp3",NSHomeDirectory()];//本地路径
- MPMoviePlayerController *moviePlayer = [ [ MPMoviePlayerController alloc]
- initWithContentURL:[NSURL fileURLWithPath:path]];//本地的
下面是MPMoviePlayerController与所带的属性
因为它本身是来播放视频的所以有一些AVAudioPlayer没有的的属性
二、属性设置
1.控制器样式
- moviePlayer.moviewControlMode = MPMovieControlModeDefault;
可以使用下列样式:
MPMovieControlModeDefault 显示播放/暂停、音量和时间控制
MPMovieControlModeVolumeOnly 只显示音量控制
MPMovieControlModeHidden 没有控制器
2.屏幕宽高比例
- moviePlayer.scallingMode = MPMovieScallingModeAspectFit;
你可以使用下列宽高比值:
MPMovieScallingModeNone 不做任何缩放
MPMovieScallingModeAspectFit 适应屏幕大小,保持宽高比
MPMovieScallingModeAspectFill 适应屏幕大小,保持宽高比,可裁剪
MPMovieScallingModeFill 充满屏幕,不保持宽高比
3.背景色
背景色会在电影播放器转入转出时使用,当电影不能充满整个屏幕时,
也会用来填充空白区域。默认的背景色是黑色,不过你可以使用 UIColor 对象设置backgroundColor属性,来改变背景色:
- moviePlayer.backgroundColor = [UIColor redColor];
三、播放和停止电影
要播放电影请调用play 方法,电影播放控制器会自动将视图切换到电影播放器并开始播放:
- [ moviePlayer play ];
当用户点击Done按钮,或者 stop 方法被调用都会停止
- [ moviePlayer stop ];
当电影停止播放后会自动切回播放前应用程序所在的视图。
四、通知
你的程序可以配置电影播放器在何时候发送通知,包括结束加载内容、技术播放、改变宽高比等。电影播放器会将事件发送到 Cocoa 的通知中心,你可以对其进行配置,指定将这些事件转发到你的应用程序的一个对象。要接收这些通知,需要使用 NSNotificationCenter 类,为电影播放器添加一个观察者(observer):
- NSNotificationCenter* notificationCenter = [NSNotificationCenter defaultCenter];
- [ notificationCenter addObserver:self selector:@selector(moviePlayerPreloadFinish:) name:MPMoviePlayerContentPreloadDidFinishNotification object:moviePlayer ];
通知会发到你指定的委托类和目标方法。通知参数让你可以知道是哪个事件触发了委托方法:
- -(void)moviePlayerPreloadDidFinish:(NSNotification*)notification{
- //添加你的处理代码
- }
你会观察到以下通知:
MPMoviePlayerContentPreloadDidFinishNotification
当电影播放器结束对内容的预加载后发出。因为内容可以在仅加载了一部分的情况下播放,所以这个通知可能在已经播放后才发出。
MPMoviePlayerScallingModeDidChangedNotification
当用户改变了电影的缩放模式后发出。用户可以点触缩放图标,在全屏播放和窗口播放之间切换。
MPMoviePlayerPlaybackDidFinishNotification
当电影播放完毕或者用户按下了Done按钮后发出。
用MPMoviePlayerController做在线音乐播放相关推荐
- html5做在线音乐,html5实现在线响应式音乐播放器
大概很早的时候就有想法做一个音乐播放器玩玩,以前可能还考虑过做APP,大一的时候第一个html的静态页面也是做的音乐网站,想想,大概小时候比较喜欢音乐吧.然而,现在入了前端大坑,就用h5做一个耍耍好了 ...
- python播放在线音乐_Python实现在线音乐播放器
最近这几天,学习了一下python,对于爬虫比较感兴趣,就做了一个简单的爬虫项目,使用Python的库Tkinsert做了一个界面,感觉这个库使用起来还是挺方便的,音乐的数据来自网易云音乐的一个接口, ...
- python播放网络音乐_python使用Tkinter实现在线音乐播放器
本文实例使用Tkinter实现在线音乐播放器的具体代码,供大家参考,具体内容如下 1.先使用Tkinter库写界面 2.写点击按钮触发的事件 (1).使用网易音乐的api,返回数据包装成json格式数 ...
- MKOnlinePlayer在线音乐播放器
文章目录[隐藏] 简介 界面欣赏 注意事项 常见问题 简介 MKOnlineMusicPlayer 是一款开源的基于 Meting 的在线音乐播放器.具有音乐搜索.播放.下载.歌词同步显示.个人网易云 ...
- python调用默认播放器_python使用Tkinter实现在线音乐播放器
本文实例使用Tkinter实现在线音乐播放器的具体代码,供大家参考,具体内容如下 1.先使用Tkinter库写界面 2.写点击按钮触发的事件 (1).使用网易音乐的api,返回数据包装成json格式数 ...
- Andriod小项目——在线音乐播放器
Andriod小项目--在线音乐播放器 转载请注明:http://blog.csdn.net/sunkes/article/details/51189189 Android在线音乐播放器 从大一开始就 ...
- 在线音乐播放器的推荐机制
对于我这样一个音乐控来说,学习工作时没有音乐是万万不行的.在网易云音乐云音乐面世之前,我总是在QQ音乐,百度音乐等播放器之间徘徊,当时也不够文艺,不知道豆瓣FM的存在. 第一次接触云音乐被其吸引的原因 ...
- 【Java项目实战】在线音乐播放器(从需求到产品完整解析)
准备工作必看:[Java项目实战]在线音乐播放器(前期准备) 核心功能 登录.注册 上传音乐 删除某一个音乐信息 删除选中的音乐信息 查询音乐(包含查找指定/模糊匹配的音乐) 添加音乐到"喜 ...
- python播放网络音乐_Python实现在线音乐播放器示例
这篇文章主要为大家详细介绍了Python实现在线音乐播放器的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 最近这几天,学习了一下python,对于爬虫比较感兴趣,就做了一个简单的爬虫项目 ...
最新文章
- 反射动态调用DLL类库测试
- 在网页中嵌入flash之标签
- 在WinCE5.0和WinCE6.0下,编译选项介绍
- 【Python基础知识-pycharm版】第七节-函数
- linux的系统移植——内核启动
- linux adduser mysql_linux_adduser
- oracle file参数,oracle的参数以及pfile和spfile
- Redhat Enterprise Linux 5系统引导故障解决方法
- [转载] python中callable_Python callable() 函数
- java实验报告心得_Java实验报告(一)及总结
- 台式计算机调亮度,台式电脑显示器屏幕亮度怎么调节?
- java抽象类计算正方体面积_根据下面的接口和抽象类,去实现一个正方体类(Cube)计算它表面积和体积(必须实现接口和继承抽象类),并...
- 太可怕了!有些码农为啥写代码,写到监狱里去了?
- Android集成Sentry
- ubuntu下dbus工具d-feet不显示路径和接口
- CSS3 低多边形(Low Poly)设计及开发实例 - 简单的字母
- 阿里云Centos系统下部署静态前端页面
- 根据工作日历推算工作日的算法
- python第三章_Python学习(第三章)
- python中的platform模块获取平台信息
热门文章
- 本周游戏体验:卧虎藏龙
- 【Minecraft开服】Windows搭建我的世界MC服务器「公网远程联机」
- 今日资本总裁徐新:中华英才网CEO历经两次更迭
- open用法 vba_vba workbook.open的文件名怎么使用变量
- 阿里巴巴实习生招聘电话面试分享
- 北京科技大学计算机复试难度,北京科技大学考研难度怎么样
- 数据提交的几种常用方法
- 我的世界服务器组队系统,我的世界小游戏服务器组队指令 | 手游网游页游攻略大全...
- 上海EMBA项目|上国会-美国亚利桑那州立大学合办金融财务EMBA
- Python数据结构之字典