Переходный шум при запуске MediaPlayer - Android - PullRequest
0 голосов
/ 07 августа 2020

Простое Android приложение для воспроизведения звуков (тарелка, барабан и т. Д. c) на Android планшете с использованием Android Studio Приложение работает на планшете или телефоне, но при первом нажатии кнопки появляется громкий хлопок или треск, затем воспроизводится звук. Если нажать кнопку еще раз, ни звука, ни звука. Заметно при воспроизведении через внешний усилитель. Я попытался установить громкость мультимедиа на 0, "(mp01.setVolume (zero, zero);"), но шум все еще сохраняется в первый раз. Откуда это?

package com.example.sound_01;

import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.view.MotionEventCompat;

import android.media.MediaPlayer;
import android.os.Build;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.WindowManager;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

 float one = (float) 1.0;
 float half = (float) .5;
 float zero = (float) 0.0;
 float three = (float) .3;
 float six = (float) .6;

 Button btn01;

 MediaPlayer mp01;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);
     getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
     setupAllMedia();

     btn01 = (Button) findViewById(R.id.button);
     btn01.setOnClickListener(new View.OnClickListener() {
         public void onClick(View view) {
             if (mp01.isPlaying()) {
                 mp01.stop();
                 mp01.release();
                 Setupmp01();
             } else {
                 mp01.start();
             }
         }
     });
 }

 private void setupAllMedia() {
     Setupmp01();
 }

 void Setupmp01() {
     mp01 = MediaPlayer.create(getApplicationContext(), R.raw.crash2);
     mp01.setVolume(one,one);
 }
}


1 Ответ

1 голос
/ 11 августа 2020

Я столкнулся с аналогичной проблемой при использовании веб-просмотра с медиаплеером. Я слышал шум при нажатии кнопок и при запуске нового трека. (Только на планшете Samsung, работающем через мою стереосистему. На моем Pixel 2 нет шумов.)

В другой программе веб-просмотра я запрограммировал нажатия кнопок с помощью генератора JavaScript, и я заметил это, когда установил громкость нажатия кнопки на ноль, мои прикосновения были тихими.

Итак, в программе mediaplayer я запустил осциллятор на очень малой громкости. Исчезли все переходные шумы, касания кнопок и медиаплеер - проблема решена.

Это проблема с системными генераторами, которые не инициализируются или не выключаются должным образом?

...