Android语音用户引导:播放assets中的音频资源
来源:互联网 发布:单片机与modbus 编辑:程序博客网 时间:2024/05/23 01:58
因为项目的需求,需要做出来一个语音的用户引导功能。就是当到某一个页面的时候,自动播放语音,告诉用户当前页面有哪些功能,应该怎么使用。恩,说实话,感觉这个功能稍微有点儿鸡肋。但是想着也不难实现,于是今天便着手做了起来。
概述
大概思路很简单了,设置里面设置一个语音的开关。然后采用sharepreference存储起来。然后每个页面根据存储值决定是否播放特定音乐资源。
开始
整体功能的实现其实很简单。因为要根据路径找文件,所以有可能出现IO异常。所以最好try,catch包裹起来。主要代码如下:
播放
private void play(String filename) { this.filename=filename; try { AssetManager assetManager = this.getAssets(); ////获得该应用的AssetManager AssetFileDescriptor afd = assetManager.openFd(filename); //根据文件名找到文件 //对mediaPlayer进行实例化 mediaPlayer = new MediaPlayer(); if (mediaPlayer.isPlaying()) { mediaPlayer.reset(); //如果正在播放,则重置为初始状态 } mediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength()); //设置资源目录 mediaPlayer.prepare();//缓冲 mediaPlayer.start();//开始或恢复播放 } catch (IOException e) { LogUtils.e("没有找到这个文件"); e.printStackTrace(); } }
其他情况处理
//如果失去焦点,停止播放 @Override protected void onPause() { if(mediaPlayer.isPlaying()) { //保存当前播放点 position = mediaPlayer.getCurrentPosition(); mediaPlayer.stop(); } super.onPause(); } //如果重新获得焦点,继续播放音乐 @Override protected void onResume() { if(position>0 && filename!=null) { try { play(filename); mediaPlayer.seekTo(position); position = 0; } catch (Exception e) { LogUtils.e(e.toString()); } } super.onResume(); } //退出时,对mediaPlayer进行回收 @Override protected void onDestroy() { mediaPlayer.release(); super.onDestroy(); }
阅读全文
0 0
- Android语音用户引导:播放assets中的音频资源
- Android中的音频播放
- 【android】加载assets中的资源
- SoundPool播放Assets资源
- 播放assets目录下音频
- android中加载assets中的资源文件
- android中加载assets中的资源文件
- Android 获取assets文件夹中的图片资源
- Android 获取assets文件夹中的图片资源
- 根据文件名称播放Assets资源
- SoundPool播放音频资源
- Assets的使用和SoundPool播放音频
- Android中的多媒体音频和视频播放
- android 资源和Assets
- Android:读取assets资源
- Android之assets资源
- Android assets资源读取
- android获取assets资源
- spring 基本依赖
- luogu1125【2008提高】笨小猴(素数)
- 《机器学习》阅读心得——十、降维与度量学习
- Java垃圾回收机制(3)- GC算法
- 51Nod 1005 大数加法
- Android语音用户引导:播放assets中的音频资源
- STL(十九)queue队列容器
- 索引
- IO和NIO的比较
- poj2417大步小步法
- Spark task not serializable错误的分析和处理
- CTreeCtrl获取根节点
- C++输入获取未知长度的行输入数组 与 输出控制
- linux运用vim编写C风格的代码