2015-07-21 171 views
2

你好,我正在小小的Android应用程序女巫有一些声音。我正在尝试制作切换样式按钮以启用/禁用音频。我试过这种方式。在音频播放罚款的OnCreate,当我按一下按钮,一旦熄灭像它应该,但它不会回来MediaPlayer无法恢复音量

boolean volon = true; 

player = MediaPlayer.create(this, R.raw.aud); 
player.setLooping(true);  
player.setVolume(100,100); 
player.start(); 

volumebtn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (volon) { 
       player.setVolume(0, 0); 
       volumebtn.setImageResource(R.drawable.voff); 
       volon = false; 
      }else { 
       player.setVolume(100, 100); 
       volumebtn.setImageResource(R.drawable.von); 
       volon = true; 
      } 
     } 
    }); 

登录猫输出:

07-21 15:36:36.363 29651-29651/maantje.com.gambleking I/ViewRootImpl﹕ ViewRoot's Touch Event : ACTION_DOWN 
07-21 15:36:36.441 29651-29651/maantje.com.gambleking I/ViewRootImpl﹕ ViewRoot's Touch Event : ACTION_UP 
07-21 15:36:36.443 29651-29651/maantje.com.gambleking V/MediaPlayer[Native]﹕ MediaPlayer::setVolume(0.000000, 0.000000) 
07-21 15:36:37.220 29651-29651/maantje.com.gambleking I/ViewRootImpl﹕ ViewRoot's Touch Event : ACTION_DOWN 
07-21 15:36:37.275 29651-29651/maantje.com.gambleking I/ViewRootImpl﹕ ViewRoot's Touch Event : ACTION_UP 
07-21 15:36:37.276 29651-29651/maantje.com.gambleking V/MediaPlayer[Native]﹕ MediaPlayer::setVolume(100.000000, 100.000000) 

的logcat的确认音频正在从0切换到100,但我没有听到任何音频。

回答

2

尝试使用0.0F和1.0F MediaPlayer.setVolume()现在像一个魅力的作品之间

+0

的值!但我不禁觉得奇怪,最初player.setVolume(100,100);工作,但再次使用时不起作用。我可以接受你的答案。 – Maantje

+0

可能和MediaPlayer状态一样简单,但不管怎样,它们都会被100个值的第一遍所损坏。很难说没有看MediaPlayer的来源。 – Boots

+0

@marsje Id猜想第一个电话没有做任何事情,但默认为开。 – Doomsknight