在线客服系统
十三年专注于网站建设与互联网应用开发,低调、有情怀的网络应用服务商!
南昌百恒科技微信公众号 扫一扫关注
tel-icon全国服务热线:400-680-9298,0791-88117053
扫一扫关注百恒科技微信公众号

在Android开发中加载音频文件的方法有哪些

百恒 2017-03-16 16:54:53 5259
       在Android开发中,由于企业发展需要,有时候会要求南昌APP开发公司在进行安卓开发时开发音频播放功能,这就需要安卓程序师在开发中写好加载音频文件的程序,这样才能实现音频正常播放,那么如何加载音频文件呢?需要用到哪些方法?接下来百恒网络就来为大家做个简单介绍,供大家参考、学习!

       相比其他音频播放方法,SoundPool还有个快速响应的优势:指令刚一发出,它就会立即开始播放,一点都不拖沓。不过反应快也是有代价的,那就是在播放前必须预先加载音频。SoundPool加载的音频文件都有自己的Integer类型ID。
如下代码清单所示,在Sound类中添加mSoundId实例变量,并添加相应的获取方法和设置方法管理这些ID。

       代码清单:添加mSoundId实例变量(Sound.java)
       public class Sound {
       private String mAssetPath;
       private String mName;
       private Integer mSoundId;
       ...
       public String getName() {
       return mName;
       }
       public Integer getSoundId() {
       return mSoundId;
       }
       public void setSoundId(Integer soundId) {
       mSoundId = soundId;
       }
       }
       注意,mSoundId用了Integer类型而不是int。这样,在Sound的mSoundId没有值时可以设置其为null值。
       现在处理音频加载。在BeatBox中添加一个load(Sound)方法载入音频,如下代码清单所示。
       代码清单:加载音频(BeatBox.java)
       private void loadSounds() {
       ...
       }
       private void load(Sound sound) throws IOException {
       AssetFileDescriptor afd = mAssets.openFd(sound.getAssetPath());
       int soundId = mSoundPool.load(afd, 1);
       sound.setSoundId(soundId);
       }
       }
       调用mSoundPool.load(AssetFileDescriptor, int)方法可以把文件载入SoundPool待播。为方便管理、重播或卸载音频文件,mSoundPool.load(...)方法会返回一个int型ID。这实际就是存储在mSoundId中的ID。调用openFd(String)方法有可能抛出IOException,load(Sound)方法也是如此。

       现在,在BeatBox.loadSounds()方法中,调用load(Sound)方法载入全部音频文件,如下面代码清单所示。
       代码清单:载入全部音频文件(BeatBox.java)
       private void loadSounds() {
       ...
       for (String filename : soundNames) {
       try {
       String assetPath = SOUNDS_FOLDER + "/" + filename;
       Sound sound = new Sound(assetPath);
       load(sound);
       mSounds.add(sound);
       } catch (IOException ioe) {
       Log.e(TAG, "Could not load sound " + filename, ioe);
       }
       }
       }
       运行应用确认音频都已正确加载。否则,会看到LogCat中的红色异常日志。

       其实加载音频文件的方法还有很多,百恒网络今天就为大家介绍这一种,想了解更多APP开发方面的技术知识,欢迎访问南昌APP开发公司-百恒网络 http://www.nczwz.com/,我们专业为您服务!
400-680-9298,0791-88117053
扫一扫关注百恒网络微信公众号

欢迎您的光顾,我们将竭诚为您服务×

售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售后服务 售后服务
 
备案专线 备案专线
 
售后服务 售后服务
 
×