我正在开发一个广播应用程序,其中我在服务中编写了MediaPlayer
类,按钮点击启动和关闭服务以启动和停止MediaPlayer
。但在项目中我面临两个问题
1.我想在准备音乐时显示进度。尽管我已在服务中编写代码,因此无法显示ProgressBar
。
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
}
}
答案 0 :(得分:0)
查看registerMediaButtonEventReceiver(ComponentName broadcastReceiver);
定义处理ACTION_MEDIA_BUTTON的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()
中取消注册接收器