国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android錄音應用實例教程

2020-04-11 11:44:24
字體:
來源:轉載
供稿:網友

本文以實例形式較為詳細的展示了Android錄音的實現方法,分享給大家供大家參考之用。具體方法如下:

首先是xml布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  xmlns:tools="http://schemas.android.com/tools"  android:layout_width="fill_parent"  android:layout_height="fill_parent"  android:layout_gravity="center"  android:gravity="center"  android:orientation="vertical"  android:paddingBottom="@dimen/activity_vertical_margin"  android:paddingLeft="@dimen/activity_horizontal_margin"  android:paddingRight="@dimen/activity_horizontal_margin"  android:paddingTop="@dimen/activity_vertical_margin"  tools:context=".MainActivity" >   <Button    android:id="@+id/btn_talk"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_gravity="center"    android:enabled="false"    android:text="TALK"    android:textSize="30dp"    android:textStyle="bold" /> </LinearLayout>

運行效果如下圖所示:

MainActivity中定義按鈕的點擊監聽器,按下按鈕時開始錄音,松開按鈕時停止錄音,類似于微信的操作方法。

// 獲得控件public void get_con(){     btn_talk = (Button)findViewById(R.id.btn_talk);  btn_talk.setOnTouchListener(new OnTouchListener(){    @Override    public boolean onTouch(View v, MotionEvent e) {      if (e.getAction() == MotionEvent.ACTION_DOWN){        // 開始錄音        start_record();      }      else if (e.getAction() == MotionEvent.ACTION_UP){        // 停止錄音        stop_record();      }      return false;    }  });}

開始錄音的方法,使用了android.media.MediaRecorder錄音。首先判斷SD卡是否存在,如果存在根據當前時間給創建一個錄音文件,保存到預定的目錄中,用MediaRecorder類開始錄音。

// 開始錄音public void start_record(){  if (!Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)){         show_status("SD卡不存在,請插入SD卡!");       }  else{    try    {      // 獲取當前時間      cur_date = new Date(System.currentTimeMillis());      str_file = formatter.format(cur_date);       // 創建保存錄音的音頻文件      send_sound_file = new File(Environment.getExternalStorageDirectory().getCanonicalFile() + "/talk/send");      // 如果目錄不存在      if (!send_sound_file.exists()){        send_sound_file.mkdirs();      }      send_sound_file = new File(Environment.getExternalStorageDirectory().getCanonicalFile() + "/talk/send/" + str_file + ".amr");      recorder = new MediaRecorder();      // 設置錄音的聲音來源      recorder.setAudioSource(MediaRecorder.AudioSource.MIC);      // 設置錄制的聲音的輸出格式(必須在設置聲音編碼格式之前設置)      recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);      // 設置聲音編碼的格式      recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);      recorder.setOutputFile(send_sound_file.getAbsolutePath());      recorder.prepare();      // 開始錄音      recorder.start();    }    catch (Exception e)    {      show_status(e.toString());    }  }}

停止錄音的方法,相對簡單。

// 停止錄音public void stop_record(){  if (send_sound_file != null && send_sound_file.exists())  {    ses_id = ses_id + 1;    // 停止錄音    recorder.stop();    // 釋放資源    recorder.release();    recorder = null;  }  super.onDestroy();}

經過測試,錄制的3gp文件可以正常播放。

希望本文所述對大家的Android程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 隆德县| 孟连| 确山县| 库车县| 新竹县| 永丰县| 黎城县| 苏尼特左旗| 和顺县| 龙里县| 丰城市| 永川市| 大埔区| 中方县| 田林县| 金阳县| 周至县| 边坝县| 和静县| 平阳县| 廊坊市| 皋兰县| 榆树市| 惠水县| 滦平县| 保康县| 新民市| 河池市| 商南县| 石泉县| 兴文县| 思茅市| 托克逊县| 普宁市| 芦山县| 南京市| 蒙阴县| 宜宾县| 西安市| 宣威市| 共和县|