2016-09-09 9 views
0

Host.processMetadata()を使用して、ビデオストリームにID3タグを取得します。これはUint8Arrayとして提供されていますが、これを正しくデコードする方法を理解することはできません。私は使用しています:クロムキャストレシーバーアプリでid3メタデータをデコードするにはどうすればよいですか?

new TextDecoder("utf-8").decode(data); 

しかし、データを正しくデコードしていません。データを取得するにはどうすればよいですか?

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

答えて

0

ですどのように私はそれを解決した(Googleの人々によって推奨された)

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; 
    } 
    ... 
}; 
0

私はこれが遅れているけど、私はこの同じ問題に遭遇した、これは私がID3タグからTIT2文字列を取得するには、それをどのように処理したかである:ここでは

// Receives and broadcasts TIT2 messages 
myCustomPlayer.CastPlayer.prototype.processMetadata_ = function(type, data, timestamp) { 
    var id3String = String.fromCharCode.apply(null, data); 
    if (type === 'ID3' && /TIT2/.test(id3String)) { 
    this.someMessageBus_.broadcast(JSON.stringify({ 
     id3Tag: id3String.split('|')[1] 
    })); 
    } 
} 
+0

フォローアップのおかげで!私のソリューションを追加するように私に思い出させました。申し訳ありませんが、私は早くそれをやっていない:) –

関連する問題