`
龙哥IT
  • 浏览: 253857 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

微信发送语音

 
阅读更多
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;
		}
	}

}

 

 

 

分享到:
评论

相关推荐

    访微信发语音,语音录制

    这个主题“访微信发语音,语音录制”涉及到的是如何在Android应用中实现类似微信的语音录制功能。在此,我们将深入探讨这个过程,包括相关的技术点、关键代码以及可能遇到的问题。 首先,实现语音录制需要利用...

    企业微信注入发送语音。易语言发送企业微信语音流程!

    在本文中,我们将深入探讨如何使用易语言来实现企业微信的语音消息发送功能。易语言是一种中文编程语言,设计简洁,适合初学者和专业人士进行快速开发。以下将详细阐述整个流程,包括准备、实现和注意事项。 一、...

    Flutter 仿微信长按发送语音

    引用 package: 文件路径:path_provider 录制与振幅:audio_waveforms

    html5仿微信聊天语音发送话筒录音动画特效.7z

    这个过程模拟了微信聊天中的语音消息发送体验。 源码中可能包含以下几个关键部分: 1. **事件监听**:使用JavaScript的`addEventListener`方法监听用户的触摸事件,如`touchstart`(触摸开始)和`touchend`(触摸...

    html5仿微信聊天语音发送话筒录音动画特效.zip

    在本项目中,"html5仿微信聊天语音发送话筒录音动画特效.zip"是一个使用HTML5技术实现的,模仿微信聊天应用中语音消息发送功能的交互及动画效果。这个功能通常在移动端,如手机上使用,它允许用户通过触摸屏幕上的...

    Android仿微信发送语音消息的功能及示例代码

    Android 仿微信发送语音消息的功能及示例代码 Android 模拟微信发送语音消息的功能是一项非常实用的功能,通过使用 MediaRecorder 和 MediaPlayer 两个类,可以实现语音的录制和播放。下面我们将详细介绍 Android ...

    Android仿微信发送语音与播放语音

    1、这个Demo主要是实现仿微信的发送语音以及播放语音的功能效果。 2、相应的博文地址:https://blog.csdn.net/lpCrazyBoy/article/details/82910825

    访微信语音播放动画,语音播放动画

    其中,微信的语音播放动画就是一个很好的例子,它既直观又具有良好的用户体验。本篇文章将详细探讨如何实现类似微信的语音播放动画,包括动画原理、实现步骤以及相关的Android源码分析。 首先,我们要理解语音播放...

    flutter 微信语音消息动画

    微信语音消息动画是Flutter应用中一个吸引用户注意力的交互元素,它在用户发送或接收语音消息时提供了视觉反馈。 首先,让我们了解这个动画的基本概念。微信语音消息动画通常包括一个可伸缩的麦克风图标,随着语音...

    MP3与微信语音转换工具

    2. 微信语音格式:微信发送的语音消息采用的是私有格式,通常包含ARM编解码技术,这是一种低功耗的处理器架构,主要用于移动设备。微信语音消息通常限制在60秒内,这是为了保持良好的用户体验并控制数据传输量。 3....

    Android 仿微信按住按钮语音发送实现聊天对话.rar

    Android仿微信语音对话聊天的实现,按住 按钮后可录音并发放语音,可播放动画、播放音频,仿微信那样如果前一下正在播放,当点另一个,会先把前一个正在播放的停掉,录音完成后的回调,获取音量大小的Runnable,判断...

    仿照微信聊天语音

    在移动应用开发中,微信聊天功能的实现是一项常见的需求,尤其是语音消息的发送和接收。微信的语音功能为用户提供了一种方便快捷的沟通方式,而“仿照微信聊天语音”的项目则旨在复制这一功能。下面我们将深入探讨这...

    android 仿微信语音聊天demo

    【Android 微信语音聊天Demo】是一个典型的移动应用开发示例,主要展示了如何在Android平台上构建类似微信的语音聊天功能。这个Demo包含了按钮状态切换、语音录制、本地存储、回放和加载等一系列关键操作,是Android...

    类似微信的发语音,按住说话,上移取消

    在IT行业中,微信已经成为了日常生活中...总的来说,"类似微信的发语音,按住说话,上移取消"这一功能融合了音频处理、用户交互设计、网络通信、多平台开发等多个IT领域的知识,体现了现代移动应用的高度集成和复杂性。

    基于JAVA的微信接口开发—语音识别源码

    3. **语音文件接收**:Servlet接收微信发送的语音文件,这部分可能涉及到HTTP请求解析,音频文件存储等。 4. **语音识别调用**:使用微信语音识别接口,将音频文件转换为文本。可能涉及JSON请求构造,HTTPS通信等。 ...

    安卓仿微信语音聊天功能

    在安卓平台上实现类似微信的语音聊天功能,是一个常见的需求,涉及到多媒体处理、用户界面设计以及数据存储等多个技术领域。下面将详细阐述这个过程中的关键知识点。 1. **录音API**: 安卓系统提供了AudioRecord...

    仿微信语音(本地录音功能)

    "仿微信语音(本地录音功能)"这个项目就是针对这一需求,旨在模仿微信应用的语音录制体验,虽然它目前还没有实现通信功能,但已经能够完成本地录音和界面的仿制。 一、本地录音技术 本地录音是指在设备上进行声音...

Global site tag (gtag.js) - Google Analytics