美文网首页
Android网络音乐/视频播放器

Android网络音乐/视频播放器

作者: ayyyc | 来源:发表于2017-10-31 18:53 被阅读0次

闲来无事打算开始记录下学习状态,写点文章,一方面总结这一个星期所得,另一方面可以通过我的分享去帮助更多的朋友。

废话不多说,下面我来简单介绍下此项目实现的简单功能

Android网络音乐/视频播放器

可以获取网络连接音乐/视频并播放,也可以播放本地音乐/视频

获取某路径下的所有音频路径

本项目是用Android MediaPlayer实现音乐/视频播放

 MediaPlayer包含了Audio和Video的播放功能,在Android的界面上,Music和Video两个应用程序都是调用MediaPlaer来实现的

第一步(获取权限)

READ_EXTERNAL_STORAGE(获取外部存储权限),INTERNET(网络连接权限)

在androidmanifest.xml中添加

第二部(设置布局)

一个EditText用来接收链接,6个Button分别用来监听 播放(play)、暂停(pause)、停止(stop)、重播(replay)、扫描(sm)、视频(mv)

我是直接在布局中写好监听方法名 在主函数中实现监听方法

第三步(实现音乐播放)

自定义一个方法Musicplay获取音乐路径然后用MediaPlayer对象实现音乐的播放(此方法的每一步都已经打上注释)

添加音频源 准备完毕开始播放

第4步(写监听事件方法)

东西有点多,我介绍下重点,详细内容可以在我Github中观看

if(mediaPlayer!=null&&mediaPlayer.isPlaying()){}// 除了Play可以不用判断,其他监听方法必须要判断音乐是否存在和播放情况

mediaPlayer.start();//音乐启动

mediaPlayer.pause();//音乐暂停

mediaPlayer.stop();//音乐停止

mediaPlayer.seekTo(0);//从音频最开始的地方播放,也可以用它来调整播放进度

第四步(获取本地音频)

这个获取是个伪获取,它不会自动搜索手机中的音乐,需要手动指定文件夹。

把音频路径获取放入Map集合,然后存入List中

获取音频路径

第五步(用ListView显示出获取到的音频名)

首先你需要定义好一个用来显示每一个列内容的xml,我就用一个TextView显示音频信息

再写适配器我用的是简单适配器SimpleAdapter,因为不想自己写适配器(适配器 用来把数据映射到ListView上的中介)

SpinnerAdapter可以作为AbsSpinner的数据源,AbsSpinner的子类有Gallery, Spinner和AppCompatSpinner,所以它扩展性很强

是不是很简单(从list获取音频)

/*SimpleAdapter的参数说明

* 第一个参数 表示访问整个android应用程序接口,基本上所有的组件都需要

* 第二个参数表示生成一个Map(String ,Object)列表选项

* 第三个参数表示界面布局的id  表示该文件作为列表项的组件

* 第四个参数表示该Map对象的哪些key对应value来生成列表项

* 第五个参数表示来填充的组件 Map对象key对应的资源一依次填充组件 顺序有对应关系 */

第六步(写ListView触发事件)

当用户点击了某条音频Item触发事件  解析此位置的音频信息获取路径,调用MusicPlay播放,直接看注释,非常详细了

解析音频信息获取路径

看下效果还行功能都实现了,界面美化不想写

在网上爬了些MP3的外链接 现在是播放的网络音乐,本地的音乐自然也能播

第七步(开始写视频播放器)

视频播放器依然MediaPlayer实现,不过我用了别的框架JiaoZiVideoPlayer

它的特点是视频全屏播放和浮层小窗播放,可以完全自定义UI,能在ListView、ViewPager和ListView、ViewPager和Fragment等多重嵌套模式下全屏工作,手势修改进度和音量,视频大小的屏幕适配,宽或长至少有两个对边是充满屏幕的,另外两个方向居中,可以在加载、暂停、播放等各种状态中正常进入全屏和退出全屏,重力感应自动全屏,WebView嵌套本地视频控件

想要实现播放效果也很容易

导包jiaozivideoplayer和squareup (在安卓项目build path文件内找到dependencies 添加下文内容)

compile'com.squareup.picasso:picasso:2.5.1'

debugCompile'com.squareup.leakcanary:leakcanary-android:1.4-beta2'

releaseCompile'com.squareup.leakcanary:leakcanary-android-no-op:1.4-beta2'

testCompile'com.squareup.leakcanary:leakcanary-android-no-op:1.4-beta2'

compile'cn.jzvd:jiaozivideoplayer:6.0.2'

1.写一个布局

播放视频的窗口

2.写一个播放函数

获取路径就可以播放了,模式参数表示的是普通、列表、全屏、小窗

3.映射并调用播放方法


4.Activity在Manifest中的设置

android:configChanges 保证了在全屏的时候横竖屏切换不会执行Activity的相关生命周期,打断视频的播放,控制全屏后和退出全屏的屏幕方向

不写这个不能全屏的

5.重写onBackPressed和onPause方法

通过查看发现 它只有一个MediaPlayer的实例,所以它不能同时播放多个视频,好处就是节省资源

那些其他查找本地视频,界面美化,用户体验我就不打算写了

效果

播放本地的视频 全屏播放

这样就完成了个简单的播放器,希望我的文章能帮助到大家

代码地址:Github

有兴趣研究JiaoZiVideoPlayer也可以点击访问

本文章为原创,未经同意不得转载。

相关文章

网友评论

      本文标题:Android网络音乐/视频播放器

      本文链接:https://www.haomeiwen.com/subject/vckmpxtx.html