返回列表 發帖

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>
複製代碼

  1. delButton.setOnClickListener(new View.OnClickListener()
  2.         {
  3.                         public void onClick(View v)
  4.                         {
  5.                                 if(myPlayFile != null)
  6.                                 {
  7.                                         adapter.remove(myPlayFile.getName());
  8.                                         if(myPlayFile.exists())
  9.                                         {
  10.                                                 myPlayFile.delete();
  11.                                                 myTextView.setText("delete ok...");
  12.                                         }
  13.                                         else
  14.                                                 myTextView.setText("file not found...");
  15.                                 }
  16.                         }
  17.                 });
複製代碼

TOP

  1. playButton.setOnClickListener(new View.OnClickListener()
  2.         {
  3.                         public void onClick(View v)
  4.                         {
  5.                                 if(myPlayFile != null && myPlayFile.exists())
  6.                                 {
  7.                                         MediaPlayer mplay = MediaPlayer.create(null, Uri.fromFile(myPlayFile));
  8.                                         mplay.start();
  9.                                 }
  10.                         }
  11.                 });
複製代碼

TOP

  1. myTextView.setText("Choice:"+((CheckedTextView)v).getText());
複製代碼

TOP

  1. playButton.setEnabled(true);
  2.                         delButton.setEnabled(true);
  3.                        
  4.                         myPlayFile = new File(myRecAudioDir.getAbsoluteFile()
  5.                                         + File.separator
  6.                                         + ((CheckedTextView)v).getText());
複製代碼

TOP

  1. myListView.setOnItemClickListener(new AdapterView.OnItemClickListener()
  2.         {
  3.                 public void onItemClick(AdapterView<?> av,View v,int arg1,long arg2)
  4.                 {}
  5.                 });
複製代碼

TOP

  1. myListView.setOnItemClickListener(new AdapterView.OnItemClickListener()
  2.         {
  3.                 public void onItemClick(AdapterView<?> av,View v,int arg1,long arg2)
  4.                 {}
  5.                 });
複製代碼

TOP

  1. <uses-permission android:name="android.permission.RECORD_AUDIO"/>
  2. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
複製代碼

TOP

  1. mMediaRecorder = null;
  2.                                 myTextView.setText("Stop:"+myRecAudioFile.getName());
  3.                                 recButton.setEnabled(true);
  4.                                 stopButton.setEnabled(false);
  5.                                 playButton.setEnabled(true);
  6.                                 delButton.setEnabled(true);
  7.                                 isStopRecord = true;
複製代碼

TOP

  1. if(myRecAudioFile != null)
  2.                         {
  3.                                 mMediaRecorder.stop();
  4.                                 adapter.add(myRecAudioFile.getName());
  5.                                 mMediaRecorder.release();
  6.                                
  7.                         }
複製代碼

TOP

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

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. mMediaRecorder.setOutputFile(myRecAudioFile.getAbsolutePath());
  2.                                 mMediaRecorder.prepare();
  3.                                 mMediaRecorder.start();
複製代碼

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. myRecAudioFile = File.createTempFile(strTempFile, ".amr", myRecAudioDir);
複製代碼

TOP

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

TOP

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

TOP

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

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. if(sdCardExist)
  2.                 myRecAudioDir = Environment.getExternalStorageDirectory();
  3.         
複製代碼

TOP

返回列表