package com.im.util;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnDismissListener;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Handler;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.im.util.RecordManger.SoundAmplitudeListen;
import com.qiaozi.luying.R;
import com.qiaozi.luying.TestMainActivity;
public class RecordDialog {
private Context context;
/** 控制录音和上传 */
private TalkNetManager talk;
/** 显示录音振幅 */
private ImageView progress;
/** 显示录音车状态或报错图标 */
private ImageView mic_icon;
/** 显示录音振幅的图片缓存 */
private Drawable[] progressImg = new Drawable[7];
/** 取消按钮 */
private ImageView btn_cancel;
/** 显示录音振幅 */
private TextView btn_submit;
/** 显示计时器 */
private TextView text_msg;
/** 显示录音振幅 */
private TextView dialog_title;
/** 录音对话框视图 */
private View dialog_view;
/** 录音对话框 */
private AlertDialog dialog;
/** 服务器上传地址 */
private String uploadServerUrl = "http://192.168.191.1:8080/UploadServlet/UploadServlet?";
/** 服务器下载播放地址 */
private String downloadServerUrl = "http://192.168.191.1:8080/UploadServlet/downloadfile?filename=";
private int countTime = 30;
private boolean isCountDownTime = false;
private Handler handler = new Handler();
private Runnable run = new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
text_msg.setText(countTime + "秒");
countTime--;
if (countTime < 0) {
handler.removeCallbacks(run);
onSubmit.onClick(null);// 提交
return;
}
handler.postDelayed(run, 1000);
}
};
public RecordDialog(Context context) {
this.context = context;
dialog_view = LayoutInflater.from(context).inflate(R.layout.dialog_sound, null);
progressImg[0] = context.getResources().getDrawable(R.drawable.mic_1);// 初始化振幅图片
progressImg[1] = context.getResources().getDrawable(R.drawable.mic_2);// 初始化振幅图片
progressImg[2] = context.getResources().getDrawable(R.drawable.mic_3);// 初始化振幅图片
progressImg[3] = context.getResources().getDrawable(R.drawable.mic_4);// 初始化振幅图片
progressImg[4] = context.getResources().getDrawable(R.drawable.mic_5);// 初始化振幅图片
progressImg[5] = context.getResources().getDrawable(R.drawable.mic_6);// 初始化振幅图片
progressImg[6] = context.getResources().getDrawable(R.drawable.mic_7);// 初始化振幅图片
dialog = new AlertDialog.Builder(context).setView(dialog_view).show();
dialog.hide();
dialog.setOnDismissListener(onDismissListener);// 设置对话框回退键监听
progress = (ImageView) dialog_view.findViewById(R.id.sound_progress);// 振幅进度条
btn_cancel = (ImageView) dialog_view.findViewById(R.id.cancel);// 取消键
btn_submit = (TextView) dialog_view.findViewById(R.id.submit);// 提交键
mic_icon = (ImageView) dialog.findViewById(R.id.mic);// 状态图标
dialog_title = (TextView) dialog.findViewById(R.id.title);// 标题
text_msg = (TextView) dialog.findViewById(R.id.msg);
btn_cancel.setOnClickListener(onCancel);
btn_submit.setOnClickListener(onSubmit);
talk = new TalkNetManager(); // 初始化一个网络对话管理类
talk.setUploadFileServerUrl(uploadServerUrl);// 设置文件上传网址
talk.setDownloadFileServerUrl(downloadServerUrl); // 设置文件下载网址
talk.getRecordManger().setSoundAmplitudeListen(onSoundAmplitudeListen);// 设置振幅监听器
talk.setDownloadFileFileStateListener(onDownloadFileFileStateListener);// 设置下载播放状态监听器
talk.setUploadFileStateListener(onUploadFileStateListener);// 设置文件上传状态监听器
}
public boolean isCountDownTime() {
return isCountDownTime;
}
public RecordDialog setCountDownTime(boolean isCountDownTime) {
this.isCountDownTime = isCountDownTime;
return this;
}
public void showDialog() {
talk.startRecord();// 开始录音
dialog.show();// 显示对话框
if (isCountDownTime) {
handler.post(run);// 显示计时器
}
}
public TalkNetManager getTalk() {
return talk;
}
/** 下载播放状态监听器 */
private OnStateListener onDownloadFileFileStateListener = new OnStateListener() {
@Override
public void onState(int error, String msg) {
// TODO Auto-generated method stub
}
};
/** 文件上传状态监听器 */
private OnStateListener onUploadFileStateListener = new OnStateListener() {
@Override
public void onState(int error, String msg) {
// TODO Auto-generated method stub
stopTime();
if (error != 0) {
progress.setVisibility(View.GONE);
mic_icon.setBackgroundDrawable(null);
mic_icon.setImageResource(R.drawable.voice_search_recognize_error);
btn_submit.setText("重试");
dialog_title.setText(msg);
return;
}
dialog.dismiss();
Toast.makeText(context, msg, 1).show();
}
};
/** 回调振幅,根据振幅设置图片 */
private SoundAmplitudeListen onSoundAmplitudeListen = new SoundAmplitudeListen() {
@Override
public void amplitude(int amplitude, int db, int value) {
if (value >= 6) {
value = 6;
}
progress.setBackgroundDrawable(progressImg[value]);// 显示震幅图片
}
};
/** 监听器-当对话框取消 */
private OnClickListener onCancel = new OnClickListener() {
@Override
public void onClick(View arg0) {
talk.stopRecord();
dialog.cancel();
dialog.dismiss();
stopTime();
}
};
/** 监听器-当对话框提交 */
private OnClickListener onSubmit = new OnClickListener() {
@Override
public void onClick(View arg0) {
dialog_title.setText("网络处理中");
talk.stopRecordAndUpload();
stopTime();
}
};
/** 监听器-按下回退键时停止录音 */
private OnDismissListener onDismissListener = new OnDismissListener() {
@Override
public void onDismiss(DialogInterface arg0) {
// TODO Auto-generated method stub
talk.stopRecord();
dialog.cancel();
stopTime();
}
};
private void stopTime() {
handler.removeCallbacks(run);// 移除计时器
text_msg.setText("");
}
public int getCountTime() {
return countTime;
}
public RecordDialog setCountTime(int countTime) {
this.countTime = countTime;
return this;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
效果图与代码片段:http://blog.csdn.net/b275518834/article/details/38442295 工程编码:GBK 调通需要设置 RecordDialog类中的参数--- 服务器上传地址 uploadServerUrl 服务器下载播放地址 downloadServerUrl--- FileHelper 文件下载工具类 OnStateListener 接口-状态回调 RecordDialog 录音对话框 RecordManger 录音功能类 TalkNetManager 网络会话对话框 UploadUtil 文件上传工具类
资源推荐
资源详情
资源评论
收起资源包目录
android录音-上传-下载-对话框(含服务器端) (136个子文件)
resources.ap_ 98KB
qq_hd_mini_1.4.apk 8.48MB
LUYING.apk 117KB
jarlist.cache 120B
proguard.cfg 1KB
RecordDialog.class 7KB
UploadServlet.class 4KB
FileHelper.class 4KB
UploadUtil.class 4KB
TalkNetManager.class 4KB
RecordManger.class 4KB
DownloadFile.class 3KB
TalkNetManager$DownloadRecordFile.class 3KB
MainActivity.class 2KB
NetProgressWindowDialog.class 2KB
MainActivity$SpellDialogWindow.class 2KB
NotificationUtils.class 2KB
TalkNetManager$UpLoadecordFile.class 2KB
RecordDialog$1.class 2KB
RecordDialog$3.class 2KB
WindowDialog.class 2KB
WindowDialog$PostHandler$1.class 2KB
TestMainActivity$2.class 2KB
WindowDialog$PostHandler.class 1KB
RecordManger$1.class 1KB
MainActivity$3.class 1KB
MainActivity$SpellDialogWindow$2.class 1KB
TestMainActivity.class 1KB
TestMainActivity$1.class 1KB
MainActivity$SpellDialogWindow$1.class 1KB
RecordDialog$6.class 1KB
RecordDialog$7.class 1KB
RecordDialog$5.class 1KB
RecordDialog$4.class 1KB
R$drawable.class 1KB
MainActivity$2.class 1KB
TalkNetManager$DownloadRecordFile$1.class 987B
MainActivity$1.class 981B
NetProgressWindowDialog$1.class 938B
R$id.class 683B
R$dimen.class 680B
RecordDialog$2.class 661B
R.class 614B
Manifest$permission.class 508B
R$layout.class 502B
R$string.class 424B
R$raw.class 384B
Manifest.class 372B
BuildConfig.class 343B
R$attr.class 337B
RecordManger$SoundAmplitudeListen.class 251B
OnStateListener.class 166B
.classpath 849B
.classpath 475B
org.eclipse.wst.common.component 493B
org.eclipse.wst.jsdt.ui.superType.container 49B
classes.dex 38KB
MyHtml.html 434B
commons-io-1.4.jar 106KB
commons-fileupload-1.2.1.jar 56KB
annotations-35adaccfe6c3b70a4762c00c4f9c62a5.jar 943B
RecordDialog.java 6KB
TalkNetManager.java 5KB
UploadUtil.java 4KB
UploadServlet.java 4KB
MainActivity.java 4KB
FileHelper.java 4KB
R.java 3KB
RecordManger.java 3KB
DownloadFile.java 3KB
TestMainActivity.java 2KB
NotificationUtils.java 2KB
NetProgressWindowDialog.java 1KB
WindowDialog.java 1KB
Manifest.java 408B
BuildConfig.java 159B
OnStateListener.java 142B
.jsdtscope 503B
MANIFEST.MF 39B
ringer.mp3 17KB
org.eclipse.wst.jsdt.ui.superType.name 6B
voice_search_recognize_error.png 10KB
voice_search_recognize_error.png 10KB
mic_3.png 7KB
mic_3.png 7KB
mic_2.png 6KB
mic_2.png 6KB
mic_4.png 6KB
mic_4.png 6KB
mic_5.png 6KB
mic_5.png 6KB
mic.png 5KB
mic.png 5KB
mic_1.png 5KB
mic_1.png 5KB
mark.png 4KB
mark.png 4KB
mic_6.png 4KB
mic_6.png 4KB
mic_7.png 3KB
共 136 条
- 1
- 2
小林爱
- 粉丝: 131
- 资源: 30
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
- 6
前往页