如何获取Android设备当前的媒体类型?

时间:2018-09-18 00:57:09

标签: java android android-audiomanager

我在服务中使用AudioManager来控制媒体音量,但是我只能控制用setStreamVolume()写的媒体类型。我尝试使用getRingerMode()来获取媒体类型,但是内容是我服务的内容。

int currentType = audioManager.getRingerMode();
int currentVoice = audioManager.getStreamVolume(currentType);

audioManager.setStreamVolume(currentType, currentVoice, AudioManager.FLAG_PLAY_SOUND | AudioManager.FLAG_SHOW_UI);

如何控制其他应用的音量?

2 个答案:

答案 0 :(得分:2)

Ref:how to increase and decrease the volume programmatically in android

AudioManager audioManager = (AudioManager) getApplicationContext().getSystemService(Context.AUDIO_SERVICE);


Button upButton = (Button) findViewById(R.id.upButton);
        upButton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

//To increase media player volume               
                audioManager.adjustVolume(AudioManager.ADJUST_RAISE, AudioManager.FLAG_PLAY_SOUND);
            }
        });

        Button downButton = (Button) findViewById(R.id.downButton);
        downButton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

//To decrease media player volume
                audioManager.adjustVolume(AudioManager.ADJUST_LOWER, AudioManager.FLAG_PLAY_SOUND);             
            }
        });

答案 1 :(得分:1)

感谢杜威·里德和阿什文·索兰基。 我从Ashvin solanki得到启发,Dewey Reed帮助我阅读了Android Source。 要获取当前的媒体类型,可以使用 adjustVolume()并将direction的值设置为AudioManager.ADJUST_SAME。 例如 : audioManager.adjustVolume(AudioManager.ADJUST_SAME, AudioManager.FLAG_PLAY_SOUND| AudioManager.FLAG_SHOW_UI); 现在显示了AudioControl窗口,并具有当前的媒体类型。