从 javascript/html 播放音频时设置自定义元数据(控制中心 iOS)

Posted

技术标签:

【中文标题】从 javascript/html 播放音频时设置自定义元数据(控制中心 iOS)【英文标题】:Set custom metadata when audio is playing (Control Centrer iOS) from javascript/html 【发布时间】:2017-08-31 14:45:03 【问题描述】:

当从我的 html 页面中的标签 <audio> 播放音频时,我需要更改图稿(在控制中心)。在 android 上它由 navigator.mediaSession.metadata 工作(见下面的代码),但在 ios 上它不工作。你有什么解决办法吗?

  <script>
    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() 
          document.querySelector('audio').play();
        );
        navigator.mediaSession.setActionHandler('pause', function() 
          document.querySelector('audio').pause();
        );
    
  </script>

【问题讨论】:

【参考方案1】:

目前 (2018.04.07) 不支持 iOS 浏览器。 Chrome for Android 是唯一支持媒体会话 API 的浏览器。 https://developer.mozilla.org/en-US/docs/Web/API/Media_Session_API

【讨论】:

以上是关于从 javascript/html 播放音频时设置自定义元数据(控制中心 iOS)的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript + HTML5:音频在某些情况下只会播放一次

从 Parse.com 播放音频

javascript + html5音频播放器cors不播放动态源

iOS4 和后台播放音频

Javascript/html 音频问题

播放音频时设置自定义元数据(控制中心、锁屏...)