簡體   English   中英

使用MediaPlayer API的setVolume無法正常工作

[英]setVolume Using MediaPlayer API is Not Working

我不想使用AudioManager ...使用MediaPlayer API,我的應用程序無法將音量設置為所需的水平。 在按上調音量和下調音量鍵設置的上一級音量播放時。

public class MainActivity extends AppCompatActivity {

    protected static MediaPlayer mp;

    @Override

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final Button next=(Button) findViewById(R.id.button);
        mp=MediaPlayer.create(this,R.raw.m1);
        mp.setVolume(0.02f,0.02f);
        mp.start();
        mp.setLooping(true);

        next.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this,Main2Activity.class);
                startActivity(intent);
            }
        });

如文檔中所述:

“建議使用此API來平衡應用程序中音頻流的輸出。除非編寫應用程序來控制用戶設置,否則應優先使用此API來setStreamVolume(int, int, int)來設置所有流的音量特定類型的。”

https://developer.android.com/reference/android/media/MediaPlayer.html#setVolume(float,%20float)

但是,您可以為媒體播放器設置一個流,並讓其在所需的流上播放,例如“音樂/通知”或“警報”,即可滿足需求。

mp.setAudioStreamType(AudioManager.STREAM_MUSIC);

否則,如果您要播放某些級別的聲音,則必須使用AudioManager API設置特定的流並設置流的音量並播放音頻。 這是一種常見的做法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM