电脑蓝牙连接android程序,android 音频开发蓝牙与PC端连接,实现PC端同步手机信息...

在最近的项目中,遇到了一个在手机与pc端连接蓝牙播放音乐时,需要将手机播放的信息跟pc同步。

后面自己查了一些文档,发现实现此需求跟 RemoteControlClient  类有直接关系。

RemoteControlClient是从API 14也就是android 4.0开始出现的类,用于在锁屏状态控制音乐播放。界面是系统提供的。

在api doc文档上附了一段注册代码

ComponentName myEventReceiver = new ComponentName(getPackageName(), MyRemoteControlEventReceiver.class.getName()); AudioManager myAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); myAudioManager.registerMediaButtonEventReceiver(myEventReceiver); // build the PendingIntent for the remote control client Intent mediaButtonIntent = new Intent(Intent.ACTION_MEDIA_BUTTON); mediaButtonIntent.setComponent(myEventReceiver); PendingIntent mediaPendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, mediaButtonIntent, 0); // create and register the remote control client RemoteControlClient myRemoteControlClient = new RemoteControlClient(mediaPendingIntent); myAudioManager.registerRemoteControlClient(myRemoteControlClient);

上面的代码开始时注册了耳机按键的事件,接着注册了RemoteControlClient。

要想弄出RemoteControlClient的界面,上面的代码还不够,还需要把当前音乐状态设置为正在播放。

当然设置了 这些还不够,必须获取音频焦点,最好是在服务中获取,下面是请求音频焦点的代码:

am.requestAudioFocus(new OnAudioFocusChangeListener() {

@Override

public void onAudioFocusChange(int focusChange) {

System.out.println("focusChange = " + focusChange);

}

}, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);

这样,在锁屏状态系统界面就能出现了,默认只有一个播放暂停按钮。要想显示额外的信息,使用editMetadata(boolean startEmpty)去put,如果想多显示几个控制按钮,如下:

int flags = RemoteControlClient.FLAG_KEY_MEDIA_PREVIOUS

| RemoteControlClient.FLAG_KEY_MEDIA_NEXT

| RemoteControlClient.FLAG_KEY_MEDIA_PLAY

| RemoteControlClient.FLAG_KEY_MEDIA_PAUSE

| RemoteControlClient.FLAG_KEY_MEDIA_PLAY_PAUSE  点击查看api

| RemoteControlClient.FLAG_KEY_MEDIA_STOP;

mClient.setTransportControlFlags(flags);

当然此锁屏方式可能在某些机型上无法实现,这是因为出厂商可能在设备上做出了修改,或者是api过时所导致的。在最新的官方文档上可以看到推荐使用 MediaSession             地址是: https://developer.android.com/reference/android/media/session/MediaSession.html.

实际上音频开发蓝牙与PC端连接同步与系统锁屏是基于同一个RemoteControlClient远程控制类实现,到此需求完成。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值