- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
北京传智播客教育手机影音讲师:曹睿
大纲内容回顾声音处理视频处理ffmpeg简介百度媒体云案例处理
内容回顾——MediaPlayer
音乐播放器基本功能实现准备工作——防酷狗的菜单音乐列表的获取音乐列表的刷新音乐的播放、暂停、上一首、下一首播放模式处理:循序、循环、随机播放
音乐播放器声音处理本地音乐播放歌词同步网络音乐播放收音机
音乐列表的处理音乐列表的获取读取系统的media资源如果本地资源过大,需要开启子线程获取音乐列表的刷新发送sdcard插拔的广播接收系统扫描多媒体的广播,处理扫描的开始和结束事件
音乐播放控制音乐的播放需要交给service处理音乐资源可以交给单独的类进行存放,如播放列表等数据对于音乐的控制比较麻烦,需要反复不断的调试
音乐播放器歌词处理歌词文件及歌词编辑.lrc和.txt文件按行处理时间和歌词内容复杂播放器处理
歌词处理滚动及高亮处理继承TextView,处理onDraw方法模拟歌词:将字符串信息添加进数组,记录当前行信息歌词的绘制行间距设置区分当前行和普通行当前行绘制在控件的中心指定两种Paint每个一个时间段更新显示内容,向上滚动时间处理歌词文件的解析,歌词样式:[00:03.25]最炫民族风-凤凰传奇[00:22.67]苍茫的天涯是我的爱
歌词处理歌词文件搜索歌词文件编码判断按行读取歌词内容处理行信息时间处理歌词内存处理
菜单引入菜单的Project(新建工程复制源码)为了方便代码的管理可以将自定义控件放到android.library中水平滚动处理注意:在项目配置文件中增加android.library.reference.1=../library配置信息 library——Library工程名称引入的project需要与当前项目统一目录R文件会生成在当前项目中,避免资源重名修改样式:android:theme=@style/SampleTheme
Java编写的播放器仿千千静听的实现ID3:一般是位于一个mp3文件的开头或末尾的若干字节内,附加了关于该mp3的歌手,标题,专辑名称,年代,风格等信息,该信息就被称为ID3信息,ID3信息分为两个版本,v1和v2版。其中:v1版的ID3在mp3文件的末尾128字节,以TAG三个字符开头,后面跟上歌曲信息。v2版一般位于mp3的开头,可以存储歌词,该专辑的图片等大容量的信息。V1与V2:ID3V1记录在MP3文件的末尾,长度固定ID3V2就记录在MP3文件的首部。ID3V2一共有4个版本,但流行的播放软件一般只支持第3版,既ID3v2.3。对ID3V2的操作比ID3V1要慢。而且ID3V2结构比ID3V1的结构要复杂得多,但比ID3V1全面且可以伸缩和扩展。
网络音乐播放模拟网络音乐处理:从网站上获取到音乐列表(Json)解析音乐列表获取资源链接进行播放与本地资源不同,当播放网络资源时受网速的限制,播放会有延时在操作MediaPlayer时不能想播放本地资源时使用prepare()方法。此时需要调用prepareAsync()方法,同时需要设置准备好的监听setOnPreparedListener,在监听里可以完成播放处理
收音机播放协议:MMSMMS(MicrosoftMediaServerprotocol)是一种串流媒体传送协议,android并不支持这种流媒体协议引入Vitamo框架进行播放核心类:io.vov.vitamio.MediaPlayer操作:同系统的MediaPlayer,代码编写与播放网络音乐相近
Vitamo框架音乐播放操作步骤:引入Vitamo的lib工程配置lib工程中得特有Activity(安装媒体库)检查Vitamo引擎的安装if(!LibsChecker.checkVitamioLibs(this)){return;}设置资源信息if(mPlayer.isPlaying()){mPlayer.stop();}mPlayer.reset();mPlayer.setDataSource(urls[position]);//设置流媒体的数据源播放网络资源mPlayer.prepareAsync();mPlayer.setOnPreparedListener
视频播放器视频处理本地视频播放网络视频播放电视直播万能播放
本地视频播放VideoView使用整合了SurfaceView+MediaPlayersetVideoPath(Stringpath)指定本地资源setOnPreparedListener()处理,当准备好后可以播放视频(start)视频控制:setMediaController(newMediaController(this))
网络视频播放Vide
文档评论(0)