SoundPlayer
因为公司业务需要完成了一套短音效的处理框架.SoundPlayer是基于androidSoundPool进行一次上层的封装.封装的目的是简洁的调用,屏蔽google的Sndpool的bug,避免二次书写代码引起的问题风险.
我对于一个成熟框架的理解是得具有稳定的性能,简洁的调用,和高度的可配置性.所以我在考虑这套框架的设计,尽可能地往这些方面努力,如果有不完善的地方,希望读者能积极的issue我一下,我会在最快的时间内进行相应的修复和完善.Soundplayer实现了动态的音频资源回收管理,以及自动化的生命周期管理,支持本地文件,网络路径,本地assets播放.不说那么多了下面介绍下如何使用.
gradle集成配置
根节点的 gradle: maven{url'https://www.jitpack.io'}app下 gradle:implementation 'com.github.cfw1992:SoundPlayer:1.0.0'
1.注册权限,6.0系统下文件相关权限记得申请
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
2.初始化player对象
soundPlayer=new SmallSoundPlayer.SoundPlayerBuilder(this).setMaxWaitMusic(100). //设置最大的音乐播放队列,当超过这个限制后,直接丢弃setMaxMusicLoadNum(10). //设置最大的音乐存储数setLifeCycleModel(LifeMode.AUTO). // auto是自动化的生命周期管理,self是自己处理生命周期setiFileDownLoader(new IFileDownLoader() {//您可以自定义下载管理,但需要实现相关接口 @Overridepublic void download(String s, String s1, FileListner fileListner) {fileListner.success(s);}}).setBasePath("")//设置网络文件缓存路径.build();soundPlayer.start(); //监听队列,去取出队列数据播放
音视频的处理都是要严格的对生命周期进行处理的,所以这块是不变的,封装在框架中处理,可以解决重复代码的问题,也能防止因为软件人员疏忽对生命周期的处理从而引发风险;还有另一点在android开发中,你可以将soundplayer写在逻辑类里面而不用去在activiity里面持有Soundplayer对象,或者通过逻辑类去回调给activiy,降低了耦合性和复杂性,开发人员用心关注自己的业务部分就好。SoundPlayer也可以定义手动管理模式,用于一些不需要按照生命周期实现的业务场景;
您可以自定义下载处理,soundplayer库里面也有已经默认实现的,如果不配置的话,缓存管理已经实现好了,可以正常使用
3.播放音频
soundPlayer.play(new SoundResource("http://test.com/sound.mp3"));//播放网路路径soundPlayer.play(new SoundResource("android路径/sound.map3")); //播放本地路径soundPlayer.play(new SoundResource(new File("文件路径"))); //播放本地文件soundPlayer.play(new SoundResource(getResources(),"sound.mp3"));//播放assets文件音乐PlayConfig playConfig=PlayConfig.defaultConfig(this); playConfig.setSoundListner(new SoundListner() {@Overridepublic void state(int i) {if(i==PLAYING){//写上自己的逻辑,回调在主线程,可以处理UI}}});soundPlayer.play(new SoundResource("http://test.com/sound.mp3"),playConfig);//需要音频和逻辑代码同步的时候可以调用
PlayConfig配置音频播放相关的一些属性,也可自行配置,最后麻烦广大的开发同胞能去github给颗star
github地址: https://github.com/cfw1992/SoundPlayer
总结
以上是生活随笔为你收集整理的android游戏特效,直播中送礼物短音效实现(支持网络,本地,assets)的全部内容,希望文章能够帮你解决所遇到的问题。
如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。