如何在 chromecast 接收器应用程序中解码 id3 元数据?

Mik*_*ntz 5 id3 id3-tag google-cast chromecast google-cast-sdk

使用 Host.processMetadata() 获取视频流中的 ID3 标签。它说这是一个 Uint8Array 但我不知道如何正确解码它。我在用:

new TextDecoder("utf-8").decode(data);
Run Code Online (Sandbox Code Playgroud)

然而,这并没有正确解码数据。我如何获取数据?

参考:https : //developers.google.com/cast/docs/reference/player/cast.player.api.Host#processMetadata

Mik*_*ntz 2

这是我解决这个问题的方法(谷歌的人推荐)

customReceiver.mediaHost.processMetadata = function (type, data, timestamp) {    
  var id3 = new TextDecoder("utf-8").decode(data.subarray(10));
  id3 = id3.replace(/\u0000/g, '');
  var id3Final;
  var id3Data = {
    type: 'meta',
    metadata: {}
  };
  if (id3.indexOf('TIT2') !== -1) {
    id3Final = id3.substring(5);
    id3Data.metadata.title = id3Final.substring(1);
    id3Data.metadata.TIT2 = id3Final;
  } else {
    id3Final = id3.substring(5);
    id3Data.metadata.TIT3 = id3Final;
  }
  ...
};
Run Code Online (Sandbox Code Playgroud)