亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android錄音應(yīng)用實(shí)例教程

 更新時(shí)間:2014年09月03日 11:30:18   投稿:shichen2014  
這篇文章主要介紹了Android錄音應(yīng)用實(shí)例,是Android應(yīng)用程序開(kāi)發(fā)中非常重要的一個(gè)功能,需要的朋友可以參考下

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

首先是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>

運(yùn)行效果如下圖所示:

MainActivity中定義按鈕的點(diǎn)擊監(jiān)聽(tīng)器,按下按鈕時(shí)開(kāi)始錄音,松開(kāi)按鈕時(shí)停止錄音,類似于微信的操作方法。

// 獲得控件
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){
        // 開(kāi)始錄音
        start_record();
      }
      else if (e.getAction() == MotionEvent.ACTION_UP){
        // 停止錄音
        stop_record();
      }
      return false;
    }
  });
}

開(kāi)始錄音的方法,使用了android.media.MediaRecorder錄音。首先判斷SD卡是否存在,如果存在根據(jù)當(dāng)前時(shí)間給創(chuàng)建一個(gè)錄音文件,保存到預(yù)定的目錄中,用MediaRecorder類開(kāi)始錄音。

// 開(kāi)始錄音
public void start_record(){
  if (!Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)){     
    show_status("SD卡不存在,請(qǐng)插入SD卡!");     
  }
  else{
    try
    {
      // 獲取當(dāng)前時(shí)間
      cur_date = new Date(System.currentTimeMillis());
      str_file = formatter.format(cur_date); 
      // 創(chuàng)建保存錄音的音頻文件
      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();
      // 設(shè)置錄音的聲音來(lái)源
      recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
      // 設(shè)置錄制的聲音的輸出格式(必須在設(shè)置聲音編碼格式之前設(shè)置)
      recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
      // 設(shè)置聲音編碼的格式
      recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
      recorder.setOutputFile(send_sound_file.getAbsolutePath());
      recorder.prepare();
      // 開(kāi)始錄音
      recorder.start();
    }
    catch (Exception e)
    {
      show_status(e.toString());
    }
  }
}

停止錄音的方法,相對(duì)簡(jiǎn)單。

// 停止錄音
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();
}

經(jīng)過(guò)測(cè)試,錄制的3gp文件可以正常播放。

希望本文所述對(duì)大家的Android程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Android實(shí)現(xiàn)3D標(biāo)簽云效果

    Android實(shí)現(xiàn)3D標(biāo)簽云效果

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)3D標(biāo)簽云效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • Android自定義表格控件滿足人們對(duì)視覺(jué)的需求

    Android自定義表格控件滿足人們對(duì)視覺(jué)的需求

    隨著人們對(duì)視覺(jué)的需求,基本組件已無(wú)法滿足人們求新求異的要求,于是我們常常會(huì)自定義組件,用來(lái)實(shí)現(xiàn)更美觀的UI界面,接下來(lái)將介紹Android如何自定義表格控件,感興趣的朋友可以了解下,或許對(duì)你學(xué)習(xí)自定義控件有所幫助
    2013-02-02
  • 深入理解Android中的xmlns:tools屬性

    深入理解Android中的xmlns:tools屬性

    關(guān)于xmlns:tools屬性的介紹網(wǎng)上有很多,小編覺(jué)得有必要整理一篇介紹較為詳細(xì)的內(nèi)容給大家,下面這篇文章就很深入的介紹了關(guān)于Android中的xmlns:tools屬性,有需要的朋友們可以參考借鑒,下面來(lái)一起看看吧。
    2016-12-12
  • Android將String保存為SD卡中TXT文件的方法

    Android將String保存為SD卡中TXT文件的方法

    今天小編就為大家分享一篇Android將String保存為SD卡中TXT文件的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • Kotlin語(yǔ)言中CompileSdkVersion與targetSdkVersion的區(qū)別淺析

    Kotlin語(yǔ)言中CompileSdkVersion與targetSdkVersion的區(qū)別淺析

    這篇文章主要介紹了Kotlin語(yǔ)言中CompileSdkVersion和targetSdkVersion有什么區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2023-02-02
  • android?sharedUserId?使用知識(shí)盲點(diǎn)解析

    android?sharedUserId?使用知識(shí)盲點(diǎn)解析

    這篇文章主要為大家介紹了android?sharedUserId使用的知識(shí)盲點(diǎn)解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • Android四大組件之Activity深入解讀生命周期

    Android四大組件之Activity深入解讀生命周期

    雖然說(shuō)我們天天都在使用Activity,但是你真的對(duì)Activity的生命機(jī)制完全了解了嗎?Activity的生命周期方法只有七個(gè),但是其實(shí)那只是默認(rèn)的情況。也就是說(shuō)在其他情況下,Activity的生命周期可能不會(huì)是按照我們以前所知道的流程,這就要說(shuō)到Activity的啟動(dòng)模式
    2022-07-07
  • Kotlin學(xué)習(xí)筆記之const val與val

    Kotlin學(xué)習(xí)筆記之const val與val

    這篇文章主要給大家介紹了關(guān)于Kotlin學(xué)習(xí)筆記之const val與val的相關(guān)資料,并給大家介紹了const val和val區(qū)別以及Kotlin中var和val的區(qū)別,需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-05-05
  • Android的多媒體管理庫(kù)Glide的基本使用示例

    Android的多媒體管理庫(kù)Glide的基本使用示例

    這篇文章主要介紹了Android的多媒體管理庫(kù)Glide的基本使用示例,Glide在圖片App中的表現(xiàn)非常好,Google旗下的Yelp也在使用,需要的朋友可以參考下
    2016-04-04
  • Android Studio自定義萬(wàn)能注釋模板與創(chuàng)建類,方法注釋模板操作

    Android Studio自定義萬(wàn)能注釋模板與創(chuàng)建類,方法注釋模板操作

    這篇文章主要介紹了Android Studio自定義萬(wàn)能注釋模板與創(chuàng)建類,方法注釋模板操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-03-03

最新評(píng)論