短按耳机键暂停/播放FM功能的实现
来源:互联网 发布:守望先锋数据面板 编辑:程序博客网 时间:2024/06/05 05:13
短按耳机键暂停/播放FM功能的实现
[DESCRIPTION]
短按耳机键默认是暂停/播放音乐功能,按照如下的修改方式可以实现短按耳机键暂停/播放FM
[SOLUTION]
please delete your media button code, modify as below. Thanks:
1. AndroidMenifest.xml :
<receiver android:name=".FMRadioActivity$MediaButtonReceiver">
<intent-filter>
<action android:name="android.intent.action.MEDIA_BUTTON" />
</intent-filter>
</receiver>
2. FMRadioActivity.JAVA code:
public interface MediaButtonListener {
void onMediaButtonCall(Intent intent);
}
private MediaButtonListener mMediaButtonListener = new
MediaButtonListener() {
@Override
public void onMediaButtonCall(Intent intent) {
String action = intent.getAction();
LogUtils.d(TAG, "onMediaButtonCall.action:" + action);
KeyEvent event = (KeyEvent)
intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
LogUtils.d(TAG, "onMediaButtonCall.event:" + event);
if (Intent.ACTION_MEDIA_BUTTON.equals(action)) {
LogUtils.d(TAG, "--Mediareceiver.event.getKeyCode(): " +
event.getKeyCode());
LogUtils.d(TAG, "--Mediareceiver.event.getAction(): " +
event.getAction());
if (KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE == event.getKeyCode() &&
event.getAction() == KeyEvent.ACTION_UP) {
LogUtils.d(TAG, "--Mediareceiver.pause");
if (mIsPlaying) {
LogUtils.d(TAG, "onMediaButtonCall.power down fm");
refreshImageButton(false); refreshActionMenuItem(false);
refreshPopupMenuItem(false);
refreshActionMenuPower(false); exitService();
}
} else if (KeyEvent.KEYCODE_MEDIA_NEXT == event.getKeyCode() &&
event.getAction() == KeyEvent.ACTION_UP) {
if (mIsPlaying) {
LogUtils.d(TAG, "onMediaButtonCall.seek next station");
seekStation(mCurrentStation, true);
}
}
}
}
};
public static class MediaButtonReceiver extends BroadcastReceiver {
static MediaButtonListener mListener = null;
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (null != mListener) {
mListener.onMediaButtonCall(intent);
this.abortBroadcast();
}
}
public static void registerMediaButtonListener(MediaButtonListener
callback) {
mListener = callback;
}
}
onCreate method:
MediaButtonReceiver.registerMediaButtonListener(mMediaButtonListener);
ComponentName rec = new ComponentName(getPackageName(),
MediaButtonReceiver.class.getName());
mAudioManager.registerMediaButtonEventReceiver(rec);
powerupFM method:
mAudioManager.registerMediaButtonEventReceiver(new
ComponentName(this.getPackageName(),
MediaButtonReceiver.class.getName()));
exitService method:
mAudioManager.unregisterMediaButtonEventReceiver(new
ComponentName(this.getPackageName(),
MediaButtonReceiver.class.getName()));
短按耳机键默认是暂停/播放音乐功能,按照如下的修改方式可以实现短按耳机键暂停/播放FM
[SOLUTION]
please delete your media button code, modify as below. Thanks:
1. AndroidMenifest.xml :
<receiver android:name=".FMRadioActivity$MediaButtonReceiver">
<intent-filter>
<action android:name="android.intent.action.MEDIA_BUTTON" />
</intent-filter>
</receiver>
2. FMRadioActivity.JAVA code:
public interface MediaButtonListener {
void onMediaButtonCall(Intent intent);
}
private MediaButtonListener mMediaButtonListener = new
MediaButtonListener() {
@Override
public void onMediaButtonCall(Intent intent) {
String action = intent.getAction();
LogUtils.d(TAG, "onMediaButtonCall.action:" + action);
KeyEvent event = (KeyEvent)
intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
LogUtils.d(TAG, "onMediaButtonCall.event:" + event);
if (Intent.ACTION_MEDIA_BUTTON.equals(action)) {
LogUtils.d(TAG, "--Mediareceiver.event.getKeyCode(): " +
event.getKeyCode());
LogUtils.d(TAG, "--Mediareceiver.event.getAction(): " +
event.getAction());
if (KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE == event.getKeyCode() &&
event.getAction() == KeyEvent.ACTION_UP) {
LogUtils.d(TAG, "--Mediareceiver.pause");
if (mIsPlaying) {
LogUtils.d(TAG, "onMediaButtonCall.power down fm");
refreshImageButton(false); refreshActionMenuItem(false);
refreshPopupMenuItem(false);
refreshActionMenuPower(false); exitService();
}
} else if (KeyEvent.KEYCODE_MEDIA_NEXT == event.getKeyCode() &&
event.getAction() == KeyEvent.ACTION_UP) {
if (mIsPlaying) {
LogUtils.d(TAG, "onMediaButtonCall.seek next station");
seekStation(mCurrentStation, true);
}
}
}
}
};
public static class MediaButtonReceiver extends BroadcastReceiver {
static MediaButtonListener mListener = null;
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (null != mListener) {
mListener.onMediaButtonCall(intent);
this.abortBroadcast();
}
}
public static void registerMediaButtonListener(MediaButtonListener
callback) {
mListener = callback;
}
}
onCreate method:
MediaButtonReceiver.registerMediaButtonListener(mMediaButtonListener);
ComponentName rec = new ComponentName(getPackageName(),
MediaButtonReceiver.class.getName());
mAudioManager.registerMediaButtonEventReceiver(rec);
powerupFM method:
mAudioManager.registerMediaButtonEventReceiver(new
ComponentName(this.getPackageName(),
MediaButtonReceiver.class.getName()));
exitService method:
mAudioManager.unregisterMediaButtonEventReceiver(new
ComponentName(this.getPackageName(),
MediaButtonReceiver.class.getName()));
0 0
- 短按耳机键暂停/播放FM功能的实现
- 短按耳机键暂停/播放FM功能的实现
- Android 短按耳机键暂停/播放FM功能的实现
- FAQ13878][Audio APP]收音机 APP 添加耳机hook键,以实现播放、暂停的功能
- [FAQ13878][Audio APP]收音机 APP 添加耳机hook键,以实现播放、暂停的功能
- mt6735 [Audio APP]收音机 APP添加耳机 hook键,以实现播放、暂停的功能
- android FM播放时拔出耳机后,FM APP出现"拔出耳机,Fm停止"的提示框,然后自动close
- 耳机上按键可以播放和暂停音乐的?
- ijkPlayer 实现视频播放,暂停,功能
- 使用MediaPlayer实现播放、暂停、继续和停止功能的简易音乐播放器
- 暂停FM后按返回键返回电流大
- Android开发笔记之广播,service实现音乐的播放暂停停止快进等功能
- SurfaceView+MediaPlayer视频播放并用SharedPreferences实现暂停功能
- (六)播放暂停、下一曲、上一曲功能实现
- Android FM耳机长按事件
- android发现之旅之媒体按键(耳机按键播放暂停键等)处理过程
- 实现动画暂停播放
- 豆瓣FM歌曲播放圆形进度的实现
- LoadRunner压力测试时监控服务器Linux的资源情况
- ffmpeg 最简单的水印功能
- html背景图 全屏 自适应 css
- js中创建UUID
- 研发管理工具
- 短按耳机键暂停/播放FM功能的实现
- iOS NSURLSessionConfiguration Reference
- 两个div叠加(两张图片叠加)
- 9切图编辑器下载 及 工具说明 【Nine-Patch Editor1_0_0_3】来源 米柚
- Linux 的(cut,sed,awk,grep,sort)
- 最简单的基于FFmpeg的AVfilter例子(水印叠加)
- HDU——2066一个人的旅行(优先队列SPFA水题)
- 动态改变ListView布局
- MBProgressHUD