android 队列形式播放提示语音
来源:互联网 发布:视频监控软件破解版 编辑:程序博客网 时间:2024/06/03 02:50
有序播放,并且同一种提示音在相同时间段只会播放一次
import android.media.MediaPlayer;import android.net.Uri;import java.util.ArrayList;/** * Created by junjie on 2016/3/31. */public class MediaPlayerUtil { private static MediaPlayer player; private static ArrayList<Integer> resources; private static MyOnCompletionListener myOnCompletionListener; private static int lastMedia; public static void init(){ if(player != null){ return; } player = new MediaPlayer(); resources = new ArrayList<>(); myOnCompletionListener = new MyOnCompletionListener(); player.setOnCompletionListener(myOnCompletionListener); } public static void release(){ if(player == null){ return; } player.setOnCompletionListener(null); if(player.isPlaying()){ player.stop(); } player.release(); player = null; myOnCompletionListener = null; resources.clear(); resources = null; } public static void addresource(int resource){ if(player == null){ init(); } //当前正在播放这条语音 或者 集合中已经有了这条语音,不重复播放 if((player.isPlaying() && lastMedia == resource) || resources.contains(resource)){ return; } resources.add(resource); readyPlayer(); } public static void addresources(ArrayList<Integer> _resources){ resources.addAll(_resources); readyPlayer(); } private static void readyPlayer(){ if(!player.isPlaying()){ playAndSetData(); } } static class MyOnCompletionListener implements MediaPlayer.OnCompletionListener { @Override public void onCompletion(MediaPlayer mp) { playAndSetData(); } } private static void playAndSetData(){ try{ if(resources.size() == 0){ lastMedia = 0; return; } player.reset(); player.setDataSource(AppContextUtil.getAppContext(), Uri.parse("android.resource://" + AppContextUtil.getAppContext().getPackageName() + "/" + resources.get(0)) ); lastMedia = resources.get(0); resources.remove(0); player.prepare(); player.start(); }catch (Exception e){ e.printStackTrace(); } }}
0 0
- android 队列形式播放提示语音
- Android BroadcastReceiver中播放提示语音有时失效问题
- android TTS语音播放
- Android播放本地语音
- android语音录制与播放
- android语音录制与播放
- Android 语音播放Media Player
- Android语音播放格式问题
- Android语音播放格式问题
- Android语音录制和播放
- android 播放提示音
- 【Android】播放提示音
- Android 播放提示音
- 在一个程序中播放背景音乐,以及语音提示
- FreeSWITCH在呼叫失败的情况下播放语音提示
- Win10开机“提示语音”以及”随机播放音乐”
- android 之录音实现-播放语音
- android 语音聊天播放动画的问题
- Error parsing Mapper XML. Cause: java.lang.IllegalArgumentException: Result Maps collection already
- Mobile Service
- (OK)(OK) using adb with KVM (qemu)
- Python: 什么是*args和**kwargs
- [JAVA]模拟自动售货机
- android 队列形式播放提示语音
- 烽火传递 dp+单调队列
- 自由控制灰度或原色ImageView
- EntityFramework中LINQ To SQL的lumbda表达式的错误应用
- ArrayList中去除重复数据,以及去除重复的自定义对象
- struts2---获得Sevlet对象的2*2种方法
- 一个简单的文件读写实例
- inline内联函数详解
- Party