我正在尝试为当前播放的音频内容在PWA中实现自定义通知。
正如标题所说,我正在使用androidv8.1.0和googlechrome应用v68.0.x
this
文章:
The Media Session API is supported in Chrome 57
首先,为我播放的音频内容截取的代码:
let context = getContext();
await context.resume().catch(console.error);
let source = context.createBufferSource();
source.connect(context.destination);
source.start(0);
音频内容的播放效果很好,这里没有问题。
我尝试更新媒体会话API的元数据
之后
source.start(..)
打电话,像这样:
let updateMediaSession = (payload) => {
if (!('mediaSession' in navigator)) {
return;
}
navigator.mediaSession.metadata = new MediaMetadata({
title: payload.title,
artist: payload.artist,
album: payload.album,
artwork: [
{
src: '/static/logos/android-chrome-36x36.png',
sizes: '36x36',
type: 'image/png',
},
{
src: '/static/logos/android-chrome-48x48.png',
sizes: '48x48',
type: 'image/png',
},
{
src: '/static/logos/android-chrome-72x72.png',
sizes: '72x72',
type: 'image/png',
},
{
src: '/static/logos/android-chrome-96x96.png',
sizes: '96x96',
type: 'image/png',
},
{
src: '/static/logos/android-chrome-144x144.png',
sizes: '144x144',
type: 'image/png',
},
{
src: '/static/logos/android-chrome-192x192.png',
sizes: '192x192',
type: 'image/png',
},
{
src: '/static/logos/android-chrome-256x256.png',
sizes: '256x256',
type: 'image/png',
},
{
src: '/static/logos/android-chrome-384x384.png',
sizes: '384x384',
type: 'image/png',
},
{
src: '/static/logos/android-chrome-512x512.png',
sizes: '512x512',
type: 'image/png',
},],
});
navigator.mediaSession.setActionHandler('play', () => ...);
navigator.mediaSession.setActionHandler('pause', () => ...);
navigator.mediaSession.setActionHandler('seekbackward', () => ...);
navigator.mediaSession.setActionHandler('seekforward', () => ...);
navigator.mediaSession.setActionHandler('previoustrack',() => ...);
navigator.mediaSession.setActionHandler('nexttrack', () => ...);
};
我更新事件
playing state
if ('mediaSession' in navigator) {
navigator.mediaSession.playbackState = 'paused';
}
和
if ('mediaSession' in navigator) {
navigator.mediaSession.playbackState = 'playing';
}
问题
似乎每件事都像预期的那样被执行,但什么都没有显示出来。我以为会是这样。
有人知道为什么这样不行吗?