Android功能记录(五) ------ Unity实现控制手机音量

Android端代码:

public class MainActivity extends UnityPlayerActivity {
    //音量
    public int maxVolumn;
    public int currentVolumn;
    public AudioManager mAudioManager;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
     mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
        maxVolumn = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_MUSIC );
        currentVolumn = mAudioManager.getStreamVolume( AudioManager.STREAM_MUSIC );
   }
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        switch (keyCode) {
            case KeyEvent.KEYCODE_VOLUME_UP:
                mAudioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,
                        AudioManager.ADJUST_RAISE,
                        AudioManager.FLAG_SHOW_UI);  //调高声音
                break;
            case KeyEvent.KEYCODE_VOLUME_DOWN:
                mAudioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,
                        AudioManager.ADJUST_LOWER,
                        AudioManager.FLAG_SHOW_UI);//调低声音
                break;
            default:
                break;
        }
        GetCurrentVolumn();
        text.setText(" 当前音量:"+currentVolumn);
        return super.onKeyDown(keyCode, event);
    }
    public void GetCurrentVolumn()
    {
        currentVolumn = mAudioManager.getStreamVolume( AudioManager.STREAM_MUSIC );
    }
  public void setVolumn(String vol)
    {
        currentVolumn = Integer.parseInt(vol);
        Log.d("setVolumn", currentVolumn + "");
        mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC,
                currentVolumn,AudioManager.FLAG_PLAY_SOUND);
//        AudioManager.FLAG_SHOW_UI:显示进度条
//        AudioManager.FLAG_PLAY_SOUND:不显示进度条
    }
}

Unity只需调用获取currentVolumn,和setVolumn方法即可

猜你喜欢

转载自blog.csdn.net/dengshunhao/article/details/80867109
今日推荐