2

我希望能够检测到用户键盘上的“下一首曲目”、“上一首曲目”和(如果适用)“随机播放”按钮的时间。这甚至可能吗?谢谢!

4

3 回答 3

3

实际上,现在可以使用浏览器提供的媒体会话功能。普通键盘事件通常不支持键盘中的播放器控制按钮。这是Mozilla 文档中的一个示例:

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. */ });
}

请注意,并非所有浏览器都支持此功能。

于 2020-01-09T09:51:20.780 回答
1

我似乎找不到 shuffle 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');  
            }      
});

演示

于 2013-05-22T13:31:02.777 回答
1

如果你知道你可以的关键代码。尽管并非所有键盘都有它,或者可能会有所不同。(猜测)

通过这样做并按下一个键来查看键码:

$(window).keydown( function(event){ console.log(event.keyCode); } );

当您拥有代码时,您可以在按下该键时处理该事件。

小提琴:http: //jsfiddle.net/JyKMN/

于 2013-05-22T13:12:11.560 回答