【问题标题】:media player setVoume媒体播放器 setVoume
【发布时间】:2018-01-31 13:01:10
【问题描述】:

我的项目有点问题。

在我的项目中,我想使用“setVolume”功能更改媒体播放器的音量,但它不适合我。

音量选项在微调器中。

代码:

public void setSpinner() {
    Spinner spine = (Spinner) findViewById(R.id.spinner);
    spine.setOnItemSelectedListener(this);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.power, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spine.setAdapter(adapter);
}
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
    String s = parent.getItemAtPosition(pos).toString();
    if (s == "minimum") {
        int maxVolume = 50;
        float log1 = (float) (Math.log(maxVolume - 49) / Math.log(maxVolume));
        song.setVolume(1 - log1, 1 - log1);
    }
    if (s == "average") {
        int maxVolume = 50;
        float log1 = (float) (Math.log(maxVolume - 24) / Math.log(maxVolume));
        song.setVolume(1 - log1, 1 - log1);
    }
    if (s == "maximum") {
        int maxVolume = 50;
        float log1 = (float) (Math.log(maxVolume - 1) / Math.log(maxVolume))
        song.setVolume(1 - log1, 1 - log1);
    }
}
    public void onNothingSelected(AdapterView<?> arg0) {
}

谁能告诉我这段代码有什么问题并请修复我?

感谢帮助!

【问题讨论】:

    标签: android mp3 android-mediaplayer android-spinner


    【解决方案1】:

    使用此代码

    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
            AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
    
            String s = parent.getItemAtPosition(pos).toString();
    
            if (s.equals("minimum")) {
                am.setStreamVolume(AudioManager.STREAM_MUSIC, 0, 0);
            }else if (s.equals("average")) {
                am.setStreamVolume(AudioManager.STREAM_MUSIC, am.getStreamMaxVolume(AudioManager.STREAM_MUSIC)/2, 0);
            }else if (s.equals("maximum")) {
                am.setStreamVolume(AudioManager.STREAM_MUSIC, am.getStreamMaxVolume(AudioManager.STREAM_MUSIC), 0);
            }else {
                //set default volume
            }
        }
    

    【讨论】:

    • 它对我不起作用,我不知道为什么,但代码没有进入函数中的 if。
    • 对于字符串变量,您必须使用 equals() 函数
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多