我有一个播放音乐的应用程序,并希望使用锁屏控制(播放/暂停).使用NSLog,我可以看到我的应用程序获取了按钮触发器,但没有看到UIEventSubtypeRemoteControlTogglePlayPause.
这是我的一些代码:
- (void)viewDidLoad {
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];
}
- (BOOL)canBecomeFirstResponder {
return YES;
}
- (void)remoteControlReceivedWithEvent:(UIEvent *)receivedEvent
{
NSLog(@"REMOTE RECEIVE");
if (receivedEvent.type == UIEventTypeRemoteControl)
{
NSLog(@"received remote event");
switch (receivedEvent.subtype)
{
case UIEventSubtypeRemoteControlTogglePlayPause:
NSLog(@"toggle button received");
//[self togglePlayPauseTapped: nil];
break;
default:
break;
}
}
Run Code Online (Sandbox Code Playgroud)
我从NSLog输出获得"REMOTE RECEIVE"和"收到远程事件"但不是内部的行... TogglePlayPause.
有任何想法吗?
我可以使用Java Runtime.exec()方法的输入和输出流轻松控制基于控制台的应用程序.如何以相同的方式控制基于GUI的应用程序.我查看了Robot类,但是我没办法以编程方式控制一个应用程序.是否有另一个Java库,甚至是另一种语言的库,它允许我生成一个GUI应用程序,然后能够控制该应用程序?
我已经浏览了SDK(RandomMusicPlayer)提供的RemoteControlClient示例程序.但是,我不能为我的生活弄清楚如何使用我自己的音乐播放器获得锁屏控制RemoteControlClient.这就是我的音乐播放器服务:
//Request audio focus for playback
int result = audioManager.requestAudioFocus(audioFocusChangeListener,
AudioManager.STREAM_MUSIC,
AudioManager.AUDIOFOCUS_GAIN);
//Check if audio focus was granted. If not, stop the service.
if (result!=AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
//Stop the service.
stopSelf();
Toast.makeText(mContext, R.string.close_other_audio_apps, Toast.LENGTH_LONG).show();
}
ComponentName remoteControlsReceiver = new ComponentName(getPackageName(),
HeadsetButtonsReceiver.class.getName());
if (mRemoteControlClientCompat == null) {
Intent remoteControlIntent = new Intent(Intent.ACTION_MEDIA_BUTTON);
remoteControlIntent.setComponent(remoteControlsReceiver);
mRemoteControlClientCompat = new RemoteControlClientCompat(PendingIntent.getBroadcast(this, 0, remoteControlIntent, 0));
RemoteControlHelper.registerRemoteControlClient(audioManager, mRemoteControlClientCompat);
audioManager.registerMediaButtonEventReceiver(remoteControlsReceiver);
}
Run Code Online (Sandbox Code Playgroud)
这基本上就是SDK示例所做的(据我所知).我已经确认我的应用程序能够获得音频焦点.我完成了我的作业,并且知道需要音频专注才能使用.我到底错过了什么?任何指向正确方向的人都非常感激.:)
android ×1
api ×1
copilot ×1
ios ×1
java ×1
lockscreen ×1
logmein ×1
media-player ×1
objective-c ×1
uievent ×1