-1
A
回答
1
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button startBtn = (Button) findViewById(R.id.bgnBtn);
Button endBtn = (Button) findViewById(R.id.stpBtn);
Button playRecordingBtn = (Button) findViewById(R.id.playRecordingBtn);
Button stpPlayingRecordingBtn = (Button) findViewById(R.id.stpPlayingRecordingBtn);
startBtn.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View view)
{
try
{
beginRecording();
}
catch (Exception e)
{
e.printStackTrace();
}
}
});
endBtn.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View view)
{
try
{
stopRecording();
}
catch (Exception e)
{
e.printStackTrace();
}
}
});
playRecordingBtn.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View view)
{
try
{
playRecording();
}
catch (Exception e)
{
e.printStackTrace();
}
}
});
stpPlayingRecordingBtn.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View view)
{
try
{
stopPlayingRecording();
}
catch (Exception e)
{
e.printStackTrace();
}
}
});
}
private void beginRecording() throws Exception
{
killMediaRecorder();
recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
if (file == null)
{
File rootDir = Environment.getExternalStorageDirectory();
file = File.createTempFile(PREFIX, EXTENSION, rootDir);
}
recorder.setOutputFile(file.getAbsolutePath());
recorder.prepare();
recorder.start();
isRecording = true;
}
private void stopRecording() throws Exception
{
if (recorder != null)
{
isRecording = false;
recordAmplitude.cancel(true);
recorder.stop();
}
}
private void killMediaRecorder()
{
if (recorder != null)
{
recorder.release();
}
}
private void killMediaPlayer()
{
if (mediaPlayer != null)
{
try
{
mediaPlayer.release();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
private void playRecording() throws Exception
{
killMediaPlayer();
mediaPlayer = new MediaPlayer();
// from sdcard
if (file.exists())
{
mediaPlayer.setDataSource(file.getAbsolutePath());
}
mediaPlayer.prepare();
mediaPlayer.start();
}
private void stopPlayingRecording() throws Exception
{
if(mediaPlayer!=null)
{
mediaPlayer.stop();
}
}
@Override
protected void onDestroy()
{
super.onDestroy();
killMediaRecorder();
killMediaPlayer();
}
}
相關問題
- 1. Android MediaRecorder IllegalStateException
- 2. 採用Android MediaRecorder
- 3. Android AudioRecord和MediaRecorder
- 4. Android hardware.camera和MediaRecorder
- 5. Android MediaRecorder屬性
- 6. Android MediaRecorder和setOutputFile
- 7. android-MediaRecorder throws illegalstateexception
- 8. Android MediaRecorder啓動RuntimeException
- 9. Android MediaRecorder問題setVideoSize()
- 10. Android MediaRecorder流媒體
- 11. Android MediaRecorder拋出IllegalStateException
- 12. 的Android MediaRecorder - IllegalStateException異常
- 13. Android中的MediaRecorder和UDP(DatagramSocket)
- 14. 的Android mediarecorder錯誤(MediaRecorder啓動失敗:-19)
- 15. Android MediaRecorder - 「啓動失敗:-19」
- 16. Android - MediaRecorder啓動失敗:RuntimeException
- 17. Android MediaRecorder錯誤(1,-2147483648)
- 18. Android MediaRecorder啓動失敗:-12
- 19. IllegalStateException異常與Android MediaRecorder
- 20. Android MediaRecorder設置音量
- 21. Android MediaRecorder啓動失敗:-38
- 22. Android的 - MediaRecorder輸出流中的ffmpeg
- 23. 支持的視頻大小MediaRecorder API android
- 24. 的Android - MediaRecorder啓動()拋出IllegalStateException異常
- 25. 的Android MediaRecorder - 啓動失敗:-2147483648 2.3.3
- 26. 開始()/損壞的視頻Android MediaRecorder RuntimeException
- 27. 更改Android中的MediaRecorder源代碼
- 28. 如何啓動MediaRecorder在Android 4.0的
- 29. Android - MediaRecorder的回撥開始錄製
- 30. 的Android MediaRecorder使旋轉視頻
在這裏發表您的logcat的。 – Praveenkumar
是發佈您的logcat在這裏,並檢查您的清單文件給予權限mediarecorder! – Dinesh
添加了此權限?你可以描述一下「recordAmplitude.cancel(true);」?使用權限android:name =「android.permission.RECORD_AUDIO」> uses-permission> – Abhi