我希望能够检测到用户键盘上的“下一首曲目”,“上一曲目”和(适用时)“随机播放”按钮的时间。这甚至可能吗?谢谢!
答案 0 :(得分:2)
实际上,现在可以使用浏览器提供的媒体会话功能来做到这一点。正常的键盘事件通常不支持键盘中的播放器控制按钮。 这是来自mozilla docs的示例:
if ('mediaSession' in navigator) {
navigator.mediaSession.metadata = new MediaMetadata({
title: 'Unforgettable',
artist: 'Nat King Cole',
album: 'The Ultimate Collection (Remastered)',
artwork: [
{ src: 'https://dummyimage.com/96x96', sizes: '96x96', type: 'image/png' },
{ src: 'https://dummyimage.com/128x128', sizes: '128x128', type: 'image/png' },
{ src: 'https://dummyimage.com/192x192', sizes: '192x192', type: 'image/png' },
{ src: 'https://dummyimage.com/256x256', sizes: '256x256', type: 'image/png' },
{ src: 'https://dummyimage.com/384x384', sizes: '384x384', type: 'image/png' },
{ src: 'https://dummyimage.com/512x512', sizes: '512x512', type: 'image/png' },
]
});
navigator.mediaSession.setActionHandler('play', function() { /* Code excerpted. */ });
navigator.mediaSession.setActionHandler('pause', function() { /* Code excerpted. */ });
navigator.mediaSession.setActionHandler('seekbackward', function() { /* Code excerpted. */ });
navigator.mediaSession.setActionHandler('seekforward', function() { /* Code excerpted. */ });
navigator.mediaSession.setActionHandler('previoustrack', function() { /* Code excerpted. */ });
navigator.mediaSession.setActionHandler('nexttrack', function() { /* Code excerpted. */ });
}
请注意,并非所有浏览器都支持此功能。
答案 1 :(得分:1)
如果你知道关键代码,你可以。虽然不是所有的键盘都有它,或者可能会有所不同。 (猜测)
通过执行此操作并按键来查看键码:
$(window).keydown( function(event){ console.log(event.keyCode); } );
当您拥有代码时,您可以在命中该键时处理该事件。
小提琴:http://jsfiddle.net/JyKMN/
答案 2 :(得分:1)
我似乎无法找到随机播放keyCode
,但这可以捕捉快进和快退......必须有一种更好的方式来做你想做的事情而不是这个IMO。
$('#capture').on('keydown',function(e){
switch (e.which) {
case 176:
alert('Fast Forward');
break;
case 177:
alert('Rewind');
break;
default:
alert('Neither FF or rewind was pressed');
}
});
<强> Demo 强>