このアプリはTelRecPro/Freeの動作確認用としてお使い下さい。
本来の目的はAndroidアプリの開発において教科書通りのコードで作成したアプリが動くかどうかの確認の為に作成しました。
SDK通りで受話音声を録音出来る端末かどうか判定する為のものです。
このアプリはチェッカーなので実際に録音したい場合はTelRecPro/Freeをご利用下さい。
参考までにソースコードを公開します。
パーミッション
android.permission.RECORD_AUDIO
android.permission.WRITE_EXTERNAL_STORAGE
※SDカードにファイルを作成するときにこのパーミッションをつけました。
※ソースコードは文字数制限の為スペースを除去しています。コピペする場合はご注意願います。
packagejp.co.zebrasoft.vrchecker;
importjava.io.IOException;
importandroid.app.Activity;
importandroid.app.AlertDialog;
importandroid.app.Dialog;
importandroid.content.DialogInterface;
importandroid.media.MediaRecorder;
importandroid.os.Bundle;
importandroid.widget.Toast;
publicclassVoiceCallCheckerextendsActivity{
/**Calledwhentheactivityisfirstcreated.*/
//ダイアログの管理ID
privatestaticfinalintMAIN_ID =1;
privatestaticfinalintOK_MESSAGE_ID =2;
privatestaticfinalintNG_MESSAGE_ID =3;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
showDialog(MAIN_ID);
}
@Override
protectedDialogonCreateDialog(intid){
Dialogd=super.onCreateDialog(id);
switch(id){
caseMAIN_ID:
d=(
newAlertDialog.Builder(VoiceCallChecker.this)
.setIcon(R.drawable.dialog_i)
.setTitle("VOICE_CALLChecker")
.setMessage("受話音声を録音するコードをはしらせます。nお使いの端末が対応しているか結果を確認して下さい。")
.setPositiveButton("Check",newDialogInterface.OnClickListener(){
publicvoidonClick(DialogInterfacefdialog,intid){
//エラーするかしないか判定
try{
VRcheck();
//エラーしなければこのメッセージを表示
Toast.makeText(VoiceCallChecker.this,"OK",Toast.LENGTH_SHORT).show();
showDialog(OK_MESSAGE_ID);
}catch(IOExceptione){
//エラーするとこのメッセージを表示
Toast.makeText(VoiceCallChecker.this,"NG",Toast.LENGTH_SHORT).show();
showDialog(NG_MESSAGE_ID);
}
dismissDialog(MAIN_ID);
}
})
.setNegativeButton("Cancel",newDialogInterface.OnClickListener(){
publicvoidonClick(DialogInterfacefdialog,intid){
dismissDialog(MAIN_ID);
finish();
}
})
.create()
);
break;
caseOK_MESSAGE_ID:
d=(
newAlertDialog.Builder(VoiceCallChecker.this)
.setIcon(R.drawable.dialog_i)
.setTitle("VOICE_CALLChecker")
.setMessage("お使いの端末はVOICE_CALLの録音でエラーしなかったので受話音声をキャプチャー出来る可能性があります。")
.setPositiveButton("OK",newDialogInterface.OnClickListener(){
publicvoidonClick(DialogInterfacefdialog,intid){
dismissDialog(OK_MESSAGE_ID);
showDialog(MAIN_ID);
}
})
.create()
);
break;
caseNG_MESSAGE_ID:
d=(
newAlertDialog.Builder(VoiceCallChecker.this)
.setIcon(R.drawable.dialog_i)
.setTitle("VOICE_CALLChecker")
.setMessage("お使いの端末はVOICE_CALLの録音でエラーするので受話音声をキャプチャー出来ません。")
.setPositiveButton("OK",newDialogInterface.OnClickListener(){
publicvoidonClick(DialogInterfacefdialog,intid){
dismissDialog(NG_MESSAGE_ID);
showDialog(MAIN_ID);
}
})
.create()
);
break;
}
returnd;
}
publicvoidVRcheck()throwsIOException{
MediaRecordermr=newMediaRecorder();
mr.reset();
//XperiaarcはこれでNGにはならないがファイルが出来ない
//2.2から追加されたサンプリングレートなどを設定するとアイルは出来るが
//まだまだまともに録音出来る状態ではない
//XperiaX10、IS03、IS04他数機種まともに動く機種が受話録音可能な機種
mr.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);
//mr.setAudioSource(MediaRecorder.AudioSource.MIC);
//MICは大概の機種でエラーしない
mr.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mr.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mr.setOutputFile("/sdcard/check.3gp");
try{
//GALAXY-Sは上記の設定でここで落ちる
//VOICE_CALLの初期化が出来ない
mr.prepare();
}catch(IllegalStateExceptione){
}
// mr.start();
// mr.stop();
mr.release();
// //テストしたファイルは削除
// Filefile=newFile("/sdcard/check.3gp");
// file.delete();
}
}
※現バージョンで再生チェックのロジックを追加してますが上記ソースは初期のままですがご了承願います。
We do not host VRChecker on our servers. We did not scan it for viruses, adware, spyware or other type of malware. This app is hosted by Google and passed their terms and conditions to be listed there. We recommend caution when installing it.
The Google Play link for VRChecker is provided to you by apps112.com without any warranties, representations or guarantees of any kind, so access it at your own risk.
If you have questions regarding this particular app contact the publisher directly. For questions about the functionalities of apps112.com contact us.
| ||||
Downloads: 7 | ||||
Updated At: 2024-04-22 15:40:17 | ||||
Publisher: ZEBRASOFT Tamayan | ||||
Operating System: Android | ||||
License Type: Free |