ユーザーのキーボードの「次のトラック」、「前のトラック」、および(該当する場合)「シャッフル」ボタンをいつ検出できるようにしたいと考えています。これは可能ですか?ありがとう!
1183 次
3 に答える
3
実際、これはブラウザが提供するメディア セッション機能を使用して可能になりました。通常のキーボード イベントは通常、キーボードのプレーヤー コントロール ボタンをサポートしません。これは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. */ });
}
この機能はすべてのブラウザーでサポートされているわけではないことに注意してください。
于 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 に答える