Когда я воспроизвожу аудио файл в приложении, я создаю экземпляр медиа-сеанса, который выглядит следующим образом:
Код: Выделить всё
if ("mediaSession" in navigator) {
navigator.mediaSession.metadata = new MediaMetadata({
title: this.currentSong.title,
artist: this.currentSong.artist,
album: this.currentSong.album,
artwork: [
{
src: "https://dummyimage.com/96x96",
sizes: "96x96",
type: "image/png",
},
...
],
});
navigator.mediaSession.setActionHandler("nexttrack", () => {
this.nextSong();
});
navigator.mediaSession.setActionHandler("previoustrack", () => {
this.prevSong();
});
navigator.mediaSession.setActionHandler("seekto", (details) => {
this.emitter.emit("seek", details.seekTime);
});
navigator.mediaSession.setActionHandler("play", () => {
this.togglePlay();
});
navigator.mediaSession.setActionHandler("pause", () => {
this.togglePlay();
});
}
Всякий раз, когда Я создаю новые MediaMetadata и указываю название, исполнителя и т. д. Источник или имя приложения исчезают из виджета медиаплеера на экране блокировки. Нажимая на обложку плеера, я перенаправляюсь к тому, что кажется первым лучшим PWA на моем устройстве, которое может найти iOS, почти как если бы он просто брал список всех установленных приложений PWA и просто выбирал первое. Конечно, было бы более ожидаемо, что iOS направит меня к приложению PWA, из которого поступает звук.
Если я ничего не предоставлю через API сеанса мультимедиа и не закомментирую код выше, медиаплеер, кажется, по крайней мере понимает, откуда исходит звук, поскольку заголовок веб-сайта написан, и я могу щелкнуть обложку, и он перенаправляет меня на правильный PWA, но, очевидно, без каких-либо метаданных, поскольку у меня нет не предоставил.
Я также заметил, что создается один обработчик действий, например navigator.mediaSession.setActionHandler("nexttrack", () => {...}), сбросит все действия в плеере, поэтому кнопка воспроизведения будет, например, деактивирована, предоставляя только один обработчик действий. Я подумал, есть ли что-то подобное с предоставлением метаданных, что все свойства по умолчанию обнуляются или что-то подобное?
Я не видел такого поведения в iOS 15, поэтому мне просто интересно, если это это ошибка iOS 16 или мне нужно предоставить какие-либо дополнительные свойства с экземпляром MediaMetadata?
Подробнее здесь: https://stackoverflow.com/questions/762 ... of-website
Мобильная версия