Android试手——Dota铃声(2)
来源:未知 责任编辑:责任编辑 发表时间:2013-12-18 11:34 点击:次
configButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Toast.makeText(DotaBellActivity.this, "config", Toast.LENGTH_SHORT).show();
Intent preferenceIntent=new Intent();
preferenceIntent.setClass(DotaBellActivity.this, BellConfigPreference.class);
startActivity(preferenceIntent);
}
});
Service中就是主要的一些处理部分,包含了存放铃声的Map和播放铃声等逻辑处理,第一次做的时候由于是采用MediaPlayer来播放,出现了用户多媒体声音关闭时候没有效果的情况,后来通过AudioManager来暂时打开多媒体声音,播放完再关闭解决了这一问题。
Java代码
//播放音效
private void playBell(Context context, int num) {
//为防止用户当前模式关闭了media音效 先将media打开
am=(AudioManager)getSystemService(Context.AUDIO_SERVICE);//获取音量控制
currentMediaStatus=am.getStreamVolume(AudioManager.STREAM_MUSIC);
currentMediaMax=am.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
am.setStreamVolume(AudioManager.STREAM_MUSIC, currentMediaMax, 0);
//创建MediaPlayer 进行播放
MediaPlayer mp = MediaPlayer.create(context, getBellResource());
mp.setOnCompletionListener(new musicCompletionListener());
mp.start();
}
private class musicCompletionListener implements OnCompletionListener {
@Override
public void onCompletion(MediaPlayer mp) {
//播放结束释放mp资源
mp.release();
//恢复用户之前的media模式
am.setStreamVolume(AudioManager.STREAM_MUSIC, currentMediaStatus, 0);
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 进入详细评论页>>