typescript MediaSession,setPositionState()和seekto不工作

xbp102n0  于 2023-05-01  发布在  TypeScript
关注(0)|答案(1)|浏览(91)

MediaSession。setPositionState()不显示音频时间,也不显示seekbar。

const audio= document.querySelector('audio');

function updatePositionState() {
  if ('setPositionState' in navigator.mediaSession) {
    navigator.mediaSession.setPositionState({
      duration: audio.duration,
      playbackRate: audio.playbackRate,
      position: audio.currentTime,
    });
  }
}

await audio.play();
updatePositionState();

navigator.mediaSession.setActionHandler('seekto', (details) => {
  updatePositionState();
});

mwg9r5ms

mwg9r5ms1#

我也遇到了同样的事情。
然后我做了一些清理工作,并决定现在不需要以下内容:

navigator.mediaSession.setActionHandler("seekbackward", (data) => {
        console.log('seekBackward: data: ', data);
        // seekBackward: data: { action: 'seekbackward' }
      });
      navigator.mediaSession.setActionHandler("seekforward", (data) => {
        console.log('seekForward: data: ', data);
        // seekForward: data:  {action: 'seekforward'}
      });

一旦我评论了这一点,搜索栏现在在我的移动终端上可见。在桌面上,它仍然看不见。我怀疑也许MediaSession API的工作方式是如果你有向前和向后跳的按钮,那么seekTo就被禁用了。
现在,seekTo栏是可见的并且可以被触发,但它是不正确的。当一条赛道开始时,它已经通过了四分之一的路程。
我似乎找不到一种方法来设置流上的MedaSession API中的轨道的运行时间。
我在什么地方读到过,在流上甚至不可能有一个搜索栏。🤷‍♀️

相关问题