package com.weixin.android; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.graphics.drawable.AnimationDrawable; import android.media.MediaPlayer; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.ListView; import com.weixin.android.view.AudioRecorderButton; import com.weixin.android.view.AudioRecorderButton.AudioFinishRecorderListener; public class MainActivity extends Activity { private ListView mListview; private AudioRecorderButton mAudioRecorderButton; private ArrayAdapter<Recorder> mAdapter; private List<Recorder> mDatas = new ArrayList<Recorder>(); private View animView; private static int mIndex =-1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mListview = (ListView) findViewById(R.id.listview); mAudioRecorderButton = (AudioRecorderButton) findViewById(R.id.button); mAudioRecorderButton.setAudioFinishRecorderListener(new AudioFinishRecorderListener() { @Override public void onFinish(float secends, String filePath) { Recorder recorder = new Recorder(secends, filePath); mDatas.add(recorder); mAdapter.notifyDataSetChanged(); mListview.setSelection(mDatas.size()-1); } }); mAdapter = new RecorderAdapter(this, mDatas); mListview.setAdapter(mAdapter); mListview.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View view, int arg2, long arg3) { if (animView !=null) { animView.setBackgroundResource(R.drawable.adj); animView=null; } // 播放动画, animView =view.findViewById(R.id.id_recorder_anim); animView.setBackgroundResource(R.drawable.play_anim); AnimationDrawable anim =(AnimationDrawable) animView.getBackground(); if (mIndex==arg2) { MediaManager.relese(); animView.setBackgroundResource(R.drawable.adj); mIndex=-1; }else{ anim.start(); //播放音频 MediaManager.playSound(mDatas.get(arg2).filePath,new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer arg0) { animView.setBackgroundResource(R.drawable.adj); } }); mIndex=arg2; } } }); } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); MediaManager.pause(); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); MediaManager.resume(); } @Override protected void onDestroy() { super.onDestroy(); MediaManager.relese(); } class Recorder { float time; String filePath; public Recorder(float mtime, String mfilePath) { super(); this.time = mtime; this.filePath = mfilePath; } public float getTime() { return time; } public void setTime(float time) { this.time = time; } public String getFilePath() { return filePath; } public void setFilePath(String filePath) { this.filePath = filePath; } } }
相关推荐
企业微信注入发送语音。易语言发送企业微信语音流程! 电脑端发送企业微信,及个人微信语音。 可以监控新信息。按流程发送语音。 易语音编写,带源码。
访微信发语音,语音录制 [注:本内容来自网络,在此分享仅为帮助有需要的网友,如果侵犯了您的权利,麻烦联系我,我会第一时间删除,谢谢您。]
html5制作手机微信聊天语音发送话筒录音动画效果。手指按住说话,松开结束语音发送特效。内含源码及图片素材
引用 package: 文件路径:path_provider 录制与振幅:audio_waveforms
1、这个Demo主要是实现仿微信的发送语音以及播放语音的功能效果。 2、相应的博文地址:https://blog.csdn.net/lpCrazyBoy/article/details/82910825
html5制作手机微信聊天语音发送话筒录音动画效果。手指按住说话,松开结束语音发送特效。内含源码及图片素材
微信语音播放动画,通过flutter的动画和差值器来实现。如有类似需求可以直接使用。
用于MP3音乐格式与微信arm语音的格式转换 微信发送的语音是60秒内
Android仿微信语音对话聊天的实现,按住 按钮后可录音并发放语音,可播放动画、播放音频,仿微信那样如果前一下正在播放,当点另一个,会先把前一个正在播放的停掉,录音完成后的回调,获取音量大小的Runnable,判断...
仿微信 聊天 发图片 发文字 发语音
仿照微信聊天,发送语音,能够录制声音,播放声音,并在录制的时候出现话筒显示音量~
高仿微信实现语音的录制,发送以及播放,以及文字表情的混合发送
微信发送或转发任意语音消息
仿照微信发送语音录制功能,暂时将文件保存本地,添加开始震动与结束震动,高度解耦,主要功能是为了录制语音然后上传给服务器用。
录制语音,根据声音大小显示动画,精确计算当前秒数,高仿微信语音!
这是一个仿微信发布语音案例,源码RecordAndThenSendOrCancel,仿微信发送语音界面。 测试环境:Xcode 6.2,iOS 6.0 以上
主要介绍了Android仿微信发送语音消息的功能及示例代码,需要的朋友参考下吧