Мои аудиофайлы, сохраненные в хранилище Firebase, не звучат - PullRequest
0 голосов
/ 02 марта 2020

У кого-нибудь были проблемы с воспроизведением записанного аудиофайла? Я сделал приложение голосовой почты Firebase. Я хорошо записываю звук, но во время воспроизведения ничего не слышу, я проверил громкость устройства и даже программировал максимальную громкость. звук до сих пор не слышен, я вообще ничего не слышу. У вас есть идеи для меня?

enter image description here

Вот код регистрации голоса:

private void startRecording() {
            AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
            am.setStreamVolume(AudioManager.STREAM_MUSIC, am.getStreamMaxVolume(AudioManager.STREAM_MUSIC), 0);
            Log.d("volume MANAGER" , " volumeManager " + am.getStreamMaxVolume(AudioManager.STREAM_MUSIC));
            outputfile = Environment.getExternalStorageDirectory().getAbsolutePath() + "/new audio.mp3";
            mediaRecorder = new MediaRecorder();
            mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
            mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
            mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
            mediaRecorder.setAudioEncodingBitRate(128000);
            mediaRecorder.setAudioSamplingRate(96000);
            mediaRecorder.setOutputFile(outputfile);
            try {
                mediaRecorder.prepare();

            } catch (IOException e) {
                e.printStackTrace();
            }
            try {
                mediaRecorder.start();
                mediaRecorder.getMaxAmplitude();
                Log.d("volume actuel" , " volume" + mediaRecorder.getMaxAmplitude());
            } catch (IllegalStateException e) {
                Log.d(" pb start", "start");
            }
            Log.d("volume actuel" , " volume" + mediaRecorder.getMaxAmplitude());

    }

Код остановленной записи:

private void stopRecording () {mediaRecorder = new MediaRecorder ();

    try {

        mediaRecorder.stop();
        Log.d("Stop recording ", "stop recording");
    } catch (IllegalStateException ie) {
        ie.getMessage();
    }
    mediaRecorder.release();
    mediaRecorder = null;
}

Код для начала воспроизведения записи: private void play_songs () {AudioManager am = (AudioManager) getSystemService (Context.AUDIO_SERVICE ); am.setStreamVolume (AudioManager.STREAM_MUSI C, am.getStreamMaxVolume (AudioManager.STREAM_MUSI C), 0);

    MediaPlayer mediaPlayer = new MediaPlayer();

    try {

        mediaPlayer.setDataSource(FriendList.this, Uri.parse(outputfile));
        mediaPlayer.prepare();
        mediaPlayer.start();
        if (mediaPlayer.isPlaying()){
            mediaPlayer.setVolume(150,150);
            Toast.makeText(this, "Start playing", Toast.LENGTH_SHORT).show();
    }else{
            Toast.makeText(this, "audio doesn't play", Toast.LENGTH_SHORT).show();
        }
    } catch (IOException e) {
        e.printStackTrace();
        Log.d("Prepare failed.: status", " ALORS"+ equals(e.getMessage()));
        Log.d("Catch De play song", "message " + e.getMessage());
    }

}

Вот код для выполнения метода, когда пользователь нажимает кнопку записи:

    btnrecoder.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {

            if (event.getAction() == MotionEvent.ACTION_DOWN) {


                if (ActivityCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED) {

                    ActivityCompat.requestPermissions(FriendList.this, new String[]{Manifest.permission.RECORD_AUDIO},
                            FriendList.RECORD_AUDIO);

                } else {
                    startRecording();
                    btnrecoder.setText(" Recording start...");

                }


            } else if (event.getAction() == MotionEvent.ACTION_UP) {
                stopRecording();
                UploadFile();
                btnrecoder.setText(" Recording stopped...");

            }
            return false;
        }
    });

Я использовал Log.d («громкость акту», «громкость» + mediaRecorder.getMaxAmplitude ()); Начинается запись метода, чтобы проверить громкость при записи, и я получаю это: громкость 0 enter image description here

...