【发布时间】:2022-12-22 01:56:31
【问题描述】:
我目前正在将我们的音频播放器与 mediaSession 绑定在一起。
一切正常,当我点击播放并更新 navigator.mediaSession.metadata 时,它会正确显示在桌面和移动设备的通知中。
但是在我重新加载页面并点击播放后,通知始终具有默认值(网站 URL 作为标题,link rel="icon" 作为艺术品)。这只会在我重新加载网站后发生。如果我关闭它并再次打开,通知将再次正常工作。
这是它是如何完成的:
//...
initialConfiguration: {
title: 'Initial Title',
artist: 'Initial Artist',
album: '',
artwork: [
{ src: "initial/artwork/url.jpg", sizes: "512x512", type: "image/jpg" },
]
},
currentMetadata: null,
setMediaSessionMetaData: function(){
let self = this;
if ('mediaSession' in navigator) {
if( !self.currentMetadata ){
self.currentMetadata = new MediaMetadata(self.initialConfiguration);
}else{
// Update existing metadata
self.currentMetadata.title = "New Title";
self.currentMetadata.artist = "New Artist";
self.currentMetadata.artwork = [
{ src: "new/artwork/url.jpg", sizes: '512x512', type: "image/jpg" },
];
}
navigator.mediaSession.metadata = self.currentMetadata;
}
},
//...
这个函数在第一页加载时工作得很好,当我第一次点击播放时,它加载了initialConfiguration,如果我再次调用该函数,标题和插图就会更新。但是重新加载后,通知总是默认值忽略我的配置。
mediaSession 中是否存在错误,我在 mediaSession github 页面 (https://github.com/w3c/mediasession/issues) 上没有发现任何关于此问题的信息,搜索此问题得到的结果为零。
【问题讨论】:
-
我似乎遇到了同样的问题。你有没有想过为什么它会重置为默认值?
-
我在使用 Chrome 和 Edge(在 Win10 上)时遇到了这个问题。现在我在最新的 Firefox 上试用了它,它运行起来非常棒。 (另外,Spotify 网络播放器也有同样的问题,所以我不认为是我们做错了事。)我认为这是 Chromium 代码库中的一个错误。你怎么看?
标签: mediasession