【问题标题】:set volume of mediaplayer object using seekbar使用搜索栏设置媒体播放器对象的音量
【发布时间】:2014-01-08 07:14:56
【问题描述】:

我想在搜索栏的帮助下设置媒体播放器对象的音量。我在我的应用程序中使用了它的 setVolume() 方法,但它没有用,因为音量没有变化。 这是我的代码:

    setVolumeControlStream(AudioManager.STREAM_MUSIC);
        volumeSeekbar=(SeekBar)findViewById(R.id.seekBar1);
       audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
        volumeSeekbar.setMax(audioManager
           .getStreamMaxVolume(AudioManager.STREAM_MUSIC));
       volumeSeekbar.setProgress(audioManager
                .getStreamVolume(AudioManager.STREAM_MUSIC));   

  volumeSeekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

            @Override
            public void onStopTrackingTouch(SeekBar arg0) {
                // TODO Auto-generated method stub
                Log.i(tag,"touch stopped");

            }

            @Override
            public void onStartTrackingTouch(SeekBar arg0) {
                // TODO Auto-generated method stub
                Log.i(tag,"touch started");

            }
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress,
                    boolean fromUser) {
                //mp is the mediaplayer object..
                mp.setVolume(progress, progress);
                Log.i(tag,"working with seekbar");
                            }

        });
    }  

audioManager 和 volumeseekbar 已初始化。

【问题讨论】:

    标签: android audio volume seekbar


    【解决方案1】:

    使用下面的代码对我有用..

    private SeekBar mSeekBarVolume;
        private AudioManager audioManager;
        private int maxVolume;
        private int curVolume;
    /**
         * To initialize the seek bar
         */
        private void initialiseSeekBar() {
    
            maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
            curVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
            mSeekBarVolume.setMax(maxVolume);
            mSeekBarVolume.setProgress(curVolume);
            mSeekBarVolume
                    .setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
                        @Override
                        public void onStopTrackingTouch(SeekBar arg0) {
                        }
    
                        @Override
                        public void onStartTrackingTouch(SeekBar arg0) {
    
                        }
    
                        @Override
                        public void onProgressChanged(SeekBar arg0, int arg1,
                                boolean arg2) {
                            audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,
                                    arg1, 0);
                        }
                    });
        }
    

    【讨论】:

    • 实际上我想混合两首歌曲,为此我必须使用媒体播放器对象设置音量,以使用单个搜索栏管理两首歌曲的音量。谢谢你:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多