Problem activating MediaRecorder

All your problems with Audio, Video and Images.

Problem activating MediaRecorder

Postby hamorabi » Tue Sep 14, 2010 9:08 pm

Hi,

I have a problem in startring the mediarecorder for recording audio.
I have attached the code i am trying to use - does anybody have an idea what could be the problem ?

Thanks,
Code: Select all
package com.example.TelephoneState;


import java.io.File;
import java.io.IOException;

import android.app.Activity;
import android.content.Context;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.os.Environment;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.widget.TextView;
import android.widget.Toast;

public class TelephoneState extends Activity {
   TextView textOut;
   String incomingPhoneNumber;
   TelephonyManager telephonyManager;
   PhoneStateListener listener;
   MediaRecorder recorder = new MediaRecorder();
   Boolean CALL_ANSWERED;
   

   /** Called when the activity is first created. */
   @Override
   public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      String path="MyAudionFiles";
      this.CALL_ANSWERED=false;
      if (!path.startsWith("/")) {
            path = "/" + path;
          }
          if (!path.contains(".")) {
            path += ".3gp";
          }
      path=Environment.getExternalStorageDirectory().getAbsolutePath() + path;
      File directory = new File(path).getParentFile();
       if (!directory.exists() && !directory.mkdirs()) {
          Toast.makeText(TelephoneState.this, "Unable to Create Path "+path, Toast.LENGTH_SHORT).show();
       }
      this.recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
       this.recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
       this.recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
       this.recorder.setOutputFile(path);
       try {
          recorder.prepare();
      } catch (IllegalStateException e1) {
         // TODO Auto-generated catch block
         e1.printStackTrace();
      } catch (IOException e1) {
         // TODO Auto-generated catch block
         e1.printStackTrace();
      }
      setContentView(R.layout.main);
      // Get the telephony manager
      telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
      
      // Create a new PhoneStateListener
      listener = new PhoneStateListener() {
         @Override
         public void onCallStateChanged(int state, String incomingNumber) {
            String stateString = "N/A";
            switch (state) {
            case TelephonyManager.CALL_STATE_IDLE:
               stateString = "Idle";
               try {
                  if (CALL_ANSWERED) {
                     recorder.stop();
                     CALL_ANSWERED=false;
                  }
               } catch (IllegalStateException e1) {
                  // TODO Auto-generated catch block
                  e1.printStackTrace();
                  Toast.makeText(TelephoneState.this, "AudioRecorder Stop Error", Toast.LENGTH_SHORT).show();               
               }
               
               break;
            case TelephonyManager.CALL_STATE_OFFHOOK:
               stateString = "Call Answered";
               try {
                  CALL_ANSWERED=true;
                  String mystate = android.os.Environment.getExternalStorageState();
                   if(!mystate.equals(android.os.Environment.MEDIA_MOUNTED))  {
                      Toast.makeText(TelephoneState.this, "SD Card is not mounted.  It is " + mystate + ".", Toast.LENGTH_SHORT).show();
                   }
                  recorder.start();
               } catch (IllegalStateException e1) {
                  // TODO Auto-generated catch block
                  e1.printStackTrace();
                  Toast.makeText(TelephoneState.this, "AudioRecorder Start Error", Toast.LENGTH_SHORT).show();               
               }
               break;
            case TelephonyManager.CALL_STATE_RINGING:
               stateString = "Ringing";
               //incomingPhoneNumber=getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
               Toast.makeText(TelephoneState.this, stateString, Toast.LENGTH_SHORT).show();
               //Toast.makeText(TelephoneState.this, incomingPhoneNumber, Toast.LENGTH_SHORT).show();
               break;
            }
            
         }
      };

      // Register the listener wit the telephony manager
      telephonyManager.listen(listener, PhoneStateListener.LISTEN_CALL_STATE);
   }
}

hamorabi
Freshman
Freshman
 
Posts: 9
Joined: Mon Sep 06, 2010 6:28 pm

Top

Re: Problem activating MediaRecorder

Postby ramu_57 » Tue Nov 16, 2010 11:37 am

hi hamorabi
i think before running program , we have take the permission
ramu_57
Junior Developer
Junior Developer
 
Posts: 12
Joined: Tue Nov 02, 2010 10:10 am

Top

Return to Multimedia Problems

Who is online

Users browsing this forum: No registered users and 12 guests