2015-11-08 61 views
0

我的音频没有播放......我一直坚持这个约7个小时(全天!),并且无法弄清楚这个问题。我试图在用户单击静音时使音量静音,并在用户再次单击时静音。声音不工作? (仍然需要一个答案)

我希望能够让用户将应用取消静音至用户最初使用的音量。 userVolumeOnStart.userVolume是用户原始音量存储在的位置。我在unMute中使用此值,将其音量设置为过去的音量。

例如:

如果卷是7,你用我的静音按钮:

打开APP->静音(体积= 0) - >取消静音(体积= 7再次)等。

这里是听者静音按钮:

public void mute(View view) { 
     mutebutton = (ImageButton) findViewById(R.id.mutebutton); 

     if ((variableForMute.x % 2) != 0) { //If it's odd UNMUTE 
      Log.v(TAG, "Use this volume to unmute " +userVolumeOnStart.userVolume +""); 
      Toast.makeText(Main_Menu.this, "UNMUTED", Toast.LENGTH_SHORT).show(); 
      mAudioManager.setStreamVolume(AudioManager.STREAM_RING, userVolumeOnStart.userVolume, 0); 
      variableForMute.x++; 


     } else { //If its even MUTE 
      userVolumeOnStart.userVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_RING); 
      Log.v(TAG, "Right Before Mute " +userVolumeOnStart.userVolume +""); 
      mAudioManager.setStreamVolume(AudioManager.STREAM_RING, 0, 0); 
      Toast.makeText(Main_Menu.this, "MUTED", Toast.LENGTH_SHORT).show(); 
      variableForMute.x++; 
     } 
    } 

userVolumeOnStart .userVolume是我在一个独立的类中定义的变量,用于全局使用它。这是音频实际运行的地方。我可以向你保证,这个问题是不是在这里(因为我还没有今天在这个类的代码乱),但我仍然会反正提供代码:

 cdt = new CountDownTimer(20000, 1000) { 
     @Override 
     public void onTick(long millisUntilFinished) { 

      Log.v(TAG, millisUntilFinished + "left"); 

      millisUntilFinishedRounded = ((500 + millisUntilFinished)/1000) * 1000; 

      if (millisUntilFinishedRounded == 10000) { //TEN SECONDS 


        ten = MediaPlayer.create(TwentySeconds.this, R.raw.tenmoreseconds); 
       ten.start(); 

      } 

      if (millisUntilFinishedRounded == 3000) { 

       three = MediaPlayer.create(TwentySeconds.this, R.raw.threetwoone); 
       three.start(); 
      } 
     } 

这是在后台时运行服务该应用程序启动。

这是我的应用程序运行时按下静音按钮,更改手机铃声音量后的日志。这表明userVolumeOnStart.userVolume是做什么它应该做的事情:

enter image description here

我现在绝望了,所以我真的很感激任何反馈

太感谢(阴性或阳性!)多,

{Rich} 

顺便说一句,我的问题是不是The audio volume is zero?重复。自从那个问题以来,我改变了音频流,并找出了问题。在那里,AudioManager.STREAM_MUSIC出现了一个问题,其中userVolumeOnStart.userVolume将始终为0.我已将STRAM_MUSIC更改为STREAM_RING。这不是现在的问题,因为userVolumeOnStart.userVolume成功根据用户量进行更改。问题现在是媒体播放器没有有效地工作,原因不明。

+0

“我的音频没有播放...” - 您没有听到任何声音? –

+0

@MikeM。是的,那多么奇怪!你知道我该如何修复它吗? –

+2

你可能是新来的,但请停止发布相同的问题[over](http://stackoverflow.com/questions/33589665/audio-not-playing)和[over](http://stackoverflow.com/问题/ 33589116/the-audio-volume-is-zero) - 如果人们可以帮助你,他们会的。另外,不要在问题的底部添加签名 - 它会被编辑出来,而且不会帮助自己。坚持这个问题,发布一次**,并给人们时间来帮助你。 – adelphus

回答

0

我在2天后找到了答案!

MediaPlayer mp = MediaPlayer.create(this, R.raw.MYAUDIO); 

我不应该把它分解成声明和实例:

Mp.create将调用静态方法,它是不会得到存储的实例。当我打电话给start()时,我正在启动原始MediaPlayer,而不是实例!所以基本上,我正在做一些我从未存储过的东西,这就是为什么音频没有播放!

相关问题