2016-08-29 34 views
5

私のデバイスがオーディオを正しく録音しているかどうかを確認しようとしています(録音されたオーディオの音量が低すぎず、実際に録音されたファイルに音があります)。私はそれをやってみました方法は次のとおりです。Android - サウンドの録音と音量の確認

スタート記録 - >停止記録 - - >サウンドを再生>ファイルには、最大音量

私は音を記録するために使用されるコードを記録します:

public void playSound() { 
     File myDataPath = new File(getActivity().getFilesDir().getAbsolutePath() 
       + File.separator + ".CheckAudio"); 
     if (!myDataPath.exists()) 
      myDataPath.mkdirs(); 
     recordFile = myDataPath + File.separator + "Recording_" + new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(new Date()) + ".mp3"; 
     am.setStreamVolume(AudioManager.STREAM_RING, am.getStreamMaxVolume(AudioManager.STREAM_RING), 0); 
     am.setStreamVolume(AudioManager.STREAM_NOTIFICATION, am.getStreamMaxVolume(AudioManager.STREAM_NOTIFICATION), 0); 
     Uri defaultRingtoneUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
     try { 
      md = new MediaRecorder(); 
      md.setAudioSource(MediaRecorder.AudioSource.MIC); 
      md.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); 
      md.setOutputFile(recordFile); 
      md.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); 
      md.prepare(); 
      md.start(); 
     } catch (IllegalStateException | IOException e) { 
      recording = false; 
      removeItem("Unable to record audio, please try again."); // (Show toast) 
      return; 
     } 
     mediaPlayer = new MediaPlayer(); 
     try { 
      mediaPlayer.setDataSource(getActivity(), defaultRingtoneUri); 
      mediaPlayer.setAudioStreamType(AudioManager.STREAM_NOTIFICATION); 
      mediaPlayer.prepare(); 
      mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
       @Override 
       public void onCompletion(MediaPlayer mp) { 
        md.stop(); 
        md.release(); 
        mediaPlayer.release(); 
        mediaPlayer = null; 
        // get recordfile volume 
       } 
      }); 
      mediaPlayer.start(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
      removeItem("Unable to play audio"); 
      sound = false; 
     } 
    } 

しかし、私は作成されたmp3ファイルを分析し、それが空でないか(サウンドから)、ライブラリや別の方法があるかどうかを調べることができませんか?

私はあなたの英語がかなり悪いので、達成しようとしていることを理解してくれることを祈っています。

EDIT:(いくつかのより多くのexplaination) マイクからの音を録音しているときは、音(着信音か何か)を再生した場合、記録デシベルは約90デシベルでなければなりません。音の演奏とマイクを意味しますが、約30デシベルがマイクのみが作動していて、サウンドが再生されていない場合は、デシベルがゼロ付近にあればマイクは作動しません。

+0

まずあなたが作成されたファイルを見つけることができますgithubの上のソースコードを見つけることができますか?あなたはあなたとは別のアプリケーションでそれを開き、そのサウンドが実際に録音されているかどうか確認できますか? –

+0

@ GeorgeD私は同じアプリケーションでそれをやりたいのですが、他のことが起こっている間にバックグラウンドでこれを行うことはオプションです。私は、私が(答えの最後に)見つけたいと思っているものについてさらにいくつかの情報を加えました。ありがとう。 – DAVIDBALAS1

+0

私はあなたが同じアプリケーションからそれをしたいと思っていますが、ちょうどそのままにしておいて、あなたのデバイスに存在する別のアプリケーションからファイルを開き、実際に何かを記録しているかどうかを確認してください。レコーディング機能が正しく実装されているかどうかを確認します。 –

答えて

1

録音音が低すぎたり大きすぎたりすると、ビジュアライザーを使用してリアルタイムでビジュアル化することができます。

私はバーグラフを使って録音音の強さを視覚化するプロジェクトを構築しました。バーが大きくなるほど、録音された音はバーのデシベルを低くします。

このプロジェクトには、ユーザーがすべての録音を再生できるinappプレーヤーもあります。組み込みのプレーヤーは、再生サウンドデータも視覚化します。

録音を開始しようとしていると思ったからです。録音を開始 - >録音を停止 - >録音した最大音量を取得します。

毎回最大音量を得るのではなく、記録ファイルが許容可能なデシベル以上に記録されている場合に、視覚効果に頼ることができます。

すべての

https://github.com/hiteshsahu/Android-Audio-Recorder-Visualization-Master

+0

まあ、私はこれに頼ることができると思います。 :)ありがとう。 – DAVIDBALAS1

関連する問題