返回列表 發帖

MyRecorder

main.xml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout
  3.   xmlns:android="http://schemas.android.com/apk/res/android"
  4.   android:orientation="vertical"
  5.   android:layout_width="fill_parent"
  6.   android:layout_height="fill_parent"
  7.   android:background="#FFFFFFFF">
  8.   <LinearLayout
  9.   android:id="@+id/LinearLayout01"
  10.   android:layout_width="wrap_content"
  11.   android:layout_height="wrap_content">
  12.   <Button
  13.   android:id="@+id/RecBtn"
  14.   android:layout_width="fill_parent"
  15.   android:layout_height="wrap_content"
  16.   android:text="@string/RecLabel">
  17.   </Button>
  18.   <Button
  19.   android:id="@+id/StopBtn"
  20.   android:layout_width="fill_parent"
  21.   android:layout_height="wrap_content"
  22.   android:text="@string/StopLabel">
  23.   </Button>
  24.   <Button
  25.   android:id="@+id/PlayBtn"
  26.   android:layout_width="fill_parent"
  27.   android:layout_height="wrap_content"
  28.   android:text="@string/PlayLabel">
  29.   </Button>
  30.   <Button
  31.   android:id="@+id/DelBtn"
  32.   android:layout_width="fill_parent"
  33.   android:layout_height="wrap_content"
  34.   android:text="@string/DelLabel">
  35.   </Button>
  36.   </LinearLayout>
  37.   <TextView
  38.   android:id="@+id/TextView01"
  39.   android:layout_width="wrap_content"
  40.   android:layout_height="wrap_content"
  41.   android:textColor="#FF000000">
  42.   </TextView>
  43. </LinearLayout>
複製代碼

strings.xml
  1. <resources>
  2.     <string name="app_name">MyRecorder</string>
  3.     <string name="menu_settings">Settings</string>
  4.     <string name="title_activity_main">MainActivity</string>
  5.         <string name="RecLabel">錄音</string>
  6.           <string name="StopLabel">停止</string>
  7.           <string name="PlayLabel">播放</string>
  8.           <string name="DelLabel">刪除</string>
  9. </resources>
複製代碼

TOP

  1. private TextView myTextView;
  2.         private String strTempFile = "MyVoice_";
  3.         private File myRecAudioFile;
  4.         private File myRecAudioDir;
  5.         private File myPlayFile;
複製代碼

TOP

  1. private ListView myListView;
  2.         private ArrayList<String> recordFiles;
  3.         private ArrayAdapter<String> adapter;
  4.        
  5.         private MediaRecorder mMediaRecorder;
  6.         private boolean sdCardExist;
  7.         private boolean isStopRecord;
複製代碼

TOP

  1. <ListView
  2.       android:id="@+id/ListView01"
  3.       android:layout_width="wrap_content"
  4.           android:layout_height="wrap_content"
  5.       android:background="#FF000000">
  6.   </ListView>
複製代碼

TOP

  1. recButton = (Button) findViewById(R.id.RecBtn);
  2.         stopButton = (Button) findViewById(R.id.StopBtn);
  3.         playButton = (Button) findViewById(R.id.PlayBtn);
  4.         delButton = (Button) findViewById(R.id.DelBtn);
  5.         myListView = (ListView) findViewById(R.id.ListView01);
  6.         myTextView = (TextView) findViewById(R.id.TextView01);
複製代碼

TOP

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <CheckedTextView
  3.   xmlns:android="http://schemas.android.com/apk/res/android"
  4.   android:layout_width="fill_parent"
  5.   android:layout_height="fill_parent"
  6.   android:textColor="#FFFFFFFF" />
複製代碼

TOP

  1. //getRecordFiles();
  2.         adapter = new ArrayAdapter<String>(this,R.layout.list,recordFiles);
  3.         myListView.setAdapter(adapter);
複製代碼

TOP

附件: 您需要登錄才可以下載或查看附件。沒有帳號?註冊

TOP

sdCardExist = Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);

TOP

  1. if(sdCardExist)
  2.                 myRecAudioDir = Environment.getExternalStorageDirectory();
  3.         
複製代碼

TOP

  1. private void getRecordFiles()
  2.     {
  3.             recordFiles = new ArrayList<String>();
  4.             if(sdCardExist)
  5.             {
  6.                     File[] files = myRecAudioDir.listFiles();
  7.                     if(files != null)
  8.                     {
  9.                             for(int i=0;i<files.length;i++)
  10.                             {
  11.                                     if(files[i].getName().indexOf(".") >= 0)
  12.                                     {
  13.                                             String fileS = files[i].getName().substring(files[i].getName().indexOf("."));
  14.                                             if(fileS.toLowerCase().equals(".amr"))
  15.                                             {
  16.                                                     recordFiles.add(files[i].getName());
  17.                                             }
  18.                                     }
  19.                             }
  20.                     }
  21.             }
  22.     }
複製代碼

TOP

  1. recButton.setOnClickListener(new View.OnClickListener()
  2.         {
  3.                 public void onClick(View v)
  4.                 {
  5.                        
  6.                 }
  7.         }
  8.         );
複製代碼

TOP

  1. try
  2.                         {
  3.                                
  4.                         }
  5.                         catch(Exception e)
  6.                         {
  7.                                 e.printStackTrace();
  8.                         }
複製代碼

TOP

  1. if(!sdCardExist)
  2.                                 {
  3.                                         Toast.makeText(MainActivity.this, "please insert sd card...", Toast.LENGTH_LONG).show();
  4.                                 }
複製代碼

TOP

  1. myRecAudioFile = File.createTempFile(strTempFile, ".amr", myRecAudioDir);
複製代碼

TOP

  1. mMediaRecorder = new MediaRecorder();
  2.                                 mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
  3.                                 mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
  4.                                 mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
複製代碼

TOP

  1. mMediaRecorder.setOutputFile(myRecAudioFile.getAbsolutePath());
  2.                                 mMediaRecorder.prepare();
  3.                                 mMediaRecorder.start();
複製代碼

TOP

  1. myTextView.setText("錄音中...");
  2.                                
  3.                                 recButton.setEnabled(false);
  4.                                 stopButton.setEnabled(true);
  5.                                 playButton.setEnabled(false);
  6.                                 delButton.setEnabled(false);
  7.                                
  8.                                 isStopRecord = false;
複製代碼

TOP

  1. stopButton.setOnClickListener(new View.OnClickListener(){
  2.                 public void onClick(View v)
  3.                 {
  4.                        
  5.                 }
  6.         });
複製代碼

TOP

返回列表