环信语音消息听筒和扬声器的切换

环信的语音和扬声器的切换,类似于微信qq的那种,当然比他们的简单。其实环信已经给我们写好了听筒或者扬声器的切换,我们只需要把原生的传感器和播放暂停的结合一下就可以了,android距离传感器,从网上随便找找都有。

在环信的easeui库中,你可以知道EaseChatRowVoicePlayClickListener这个是语音row播放点击事件监听,

public class EaseChatRowVoicePlayClickListener implements View.OnClickListener{
private static final String TAG = "VoicePlayClickListener";
EMMessage message;
EMVoiceMessageBody voiceBody;
ImageView voiceIconView;


private AnimationDrawable voiceAnimation = null;
MediaPlayer mediaPlayer = null;
ImageView iv_read_status;
Activity activity;
private ChatType chatType;
private BaseAdapter adapter;


public static boolean isPlaying = false;
public static EaseChatRowVoicePlayClickListener currentPlayListener = null;
public static String playMsgId;


private SensorManager mManager;//传感器管理对象
private MySensorEventListener eventListener;


public EaseChatRowVoicePlayClickListener(EMMessage message, ImageView v, ImageView iv_read_status, BaseAdapter adapter, Activity context) {
this.message = message;
voiceBody = (EMVoiceMessageBody) message.getBody();
this.iv_read_status = iv_read_status;
this.adapter = adapter;
voiceIconView = v;
this.activity = context;
this.chatType = message.getChatType();
mManager = (SensorManager)activity.getSystemService(Context.SENSOR_SERVICE);
eventListener = new MySensorEventListener();
// mManager.registerListener(eventListener, mManager.getDefaultSensor(Sensor.TYPE_PROXIMITY),// 距离感应器
// SensorManager.SENSOR_DELAY_NORMAL);//注册传感器,第一个参数为距离监听器,第二个是传感器类型,第三个是延迟类型


}


public void stopPlayVoice() {


voiceAnimation.stop();
if (message.direct() == EMMessage.Direct.RECEIVE) {
voiceIconView.setImageResource(R.drawable.ease_chatfrom_voice_playing);
} else {
voiceIconView.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值