Android 准备音乐时显示progressbar并增加音乐音量

Android 准备音乐时显示progressbar并增加音乐音量,android,service,media-player,Android,Service,Media Player,我正在开发一个广播应用程序,我在其中编写了MediaPlayer类内部服务,在按钮上单击启动和关闭服务以启动和停止MediaPlayer。但是在这个项目中,我面临两个问题 1.我想在准备音乐时显示进度。虽然我在服务内部编写了代码,因此无法显示进度栏 2.当我们调高音量时,铃声的音量会增加,而不是音乐音量 我花了很多时间,但没有成功。请告诉我如何解决这个问题。您的宝贵建议将不胜感激 PlayerService.java public class PlayerService extends Serv

我正在开发一个广播应用程序,我在其中编写了
MediaPlayer
类内部服务,在按钮上单击启动和关闭服务以启动和停止
MediaPlayer
。但是在这个项目中,我面临两个问题

1.我想在准备音乐时显示进度。虽然我在服务内部编写了代码,因此无法显示
进度栏

2.当我们调高音量时,铃声的音量会增加,而不是音乐音量

我花了很多时间,但没有成功。请告诉我如何解决这个问题。您的宝贵建议将不胜感激

PlayerService.java

public class PlayerService extends Service implements OnPreparedListener {
    private MediaPlayer mPlayer;

    public PlayerService() {
        // TODO Auto-generated constructor stub
        super();
    }

    @Override
    public IBinder onBind(Intent arg0) {

        return null;

    }

    @Override
    public void onCreate() {
        super.onCreate();
        try {
            mPlayer = new MediaPlayer();
            mPlayer.setDataSource(Live.mUrl);
            mPlayer.prepare();
            mPlayer.setOnPreparedListener(this);
            // mVisualizerView = (VisualizerView)
            // findViewById(R.id.visualizerView);
            // mVisualizerView.link(mPlayer);

            // Start with just line renderer
            // addLineRenderer();
        } catch (Exception e) {
            // TODO: handle exception

        }

    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        mPlayer.start();
        return 0;

    }

    @Override
    public void onDestroy() {
        mPlayer.release();
        super.onDestroy();

    }

    @Override
    public void onPrepared(MediaPlayer mp) {
        // TODO Auto-generated method stub

    }

}

签出<代码>注册表DiaButtoneVentReceiver(组件名称broadcastReceiver)

定义一个BroadcastReceiver,用于处理操作\媒体\按钮。接收到的意图包括一个额外字段,extra_KEY_EVENT,其中包含导致广播的关键事件。您可以使用此按键事件获取按下的按键

这只是一个示例代码。可能存在语法错误

// in onCreate of activity
registerMediaButtonEventReceiver(mediaReceiver ); 

// later somewhere in activity.
MediaButton_Receiver mediaReceiver = new MediaButton_Receiver();

class MediaButton_Receiver implements BroadcastReceiver {
     void onReceive(Intent intent) {

          KeyEvent ke = (KeyEvent)intent.getExtra(Intent.EXTRA_KEY_EVENT); 
          if (ke .getKeyCode() == KeyEvent.KEYCODE_VOLUME_DOWN) {
               //Decrease your volume
          }
          // Similarly other key codes .......
     } 
}

在onPause()或onStop()中注销接收器。

请发布您尝试过的内容以及遇到的问题。@MattClark我已经发布了代码,并在1和2中发布了问题