/**
* 以下是測試麥克風的demo
* <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
* <uses-permission android:name="android.permission.RECORD_AUDIO"/>
**/
private void showMicro(){
final AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
audioManager.setMode(AudioManager.STREAM_MUSIC);//設置聲音模式
final String[] items = new String[]{"打開麥克風", "關閉麥克風","麥克風狀態"};//創建item
AlertDialog alertDialog = new AlertDialog.Builder(this)
.setTitle("庫裏的麥克風")
.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {//添加單選框
@Override
public void onClick(DialogInterface dialogInterface, int i) {
ToastUtil.showByString(getApplicationContext(), items[i]);
switch (i) {
case 0:
audioManager.setMicrophoneMute(true); //打開麥克風
break;
case 1:
audioManager.setMicrophoneMute(false);
break;
case 2:
validateMicAvailability();
break;
default:
break;
}
}
})
.setPositiveButton("確定", new DialogInterface.OnClickListener() {//添加"Yes"按鈕
@Override
public void onClick(DialogInterface dialogInterface, int i) {
finish();
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {//添加取消
@Override
public void onClick(DialogInterface dialogInterface, int i) {
finish();
}
})
.create();
alertDialog.show();
}
private void validateMicAvailability(){
Boolean available = true;
AudioRecord recorder =
new AudioRecord(MediaRecorder.AudioSource.MIC, 44100,
AudioFormat.CHANNEL_IN_MONO,
AudioFormat.ENCODING_DEFAULT, 44100);
try{
if(recorder.getRecordingState() != AudioRecord.RECORDSTATE_STOPPED ){
available = false;
}
recorder.startRecording();
if(recorder.getRecordingState() != AudioRecord.RECORDSTATE_RECORDING){
recorder.stop();
available = false;
}
recorder.stop();
} finally{
recorder.release();
recorder = null;
}
ToastUtil.showByString(this,available?"空閒":"佔用");
}
測試麥克風是否可用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.