2017-09-15 15 views
0

私はMSE経由でデータを追加するビデオ要素を持っています。私は各トラックにいくつのオーディオチャンネルがあるかを調べようとしています。AudioTrackのオーディオチャンネル数を取得する

AudioTrackオブジェクト自体には、この情報を持つプロパティはありません。私はそれについて移動するために知っている唯一の方法は、WebオーディオAPIを使用することです:単一のモノラルトラックとビデオについて

const v = document.querySelector('video'); 
const ctx = new OfflineAudioContext(32, 48000, 48000); 
console.log(Array.from(v.audioTracks).map((track) => { 
    return ctx.createBufferSource(track.sourceBuffer).channelCount; 
})); 

を、私は[1]を得ることを期待します。単一のステレオトラックのビデオの場合、私は[2]になると思っています。しかし、いつも私は[2]を取得するたびに、チャンネル数が元のソースにあるかどうかに関係なく。

質問:

  • はAudioTrackのチャンネル数を取得するための適切な直接的な方法はありますか?
  • 正しい数のチャンネルを取得するためにWeb Audio APIで何かできることはありますか?
+0

私はモノラルで両方のチャンネルが同じであると思いますか? –

+0

@KilianHertelはい、それは基本的なチャネル数について何も教えてくれません。私はオーディオをサンプリングすることができ、それは一瞬でモノであり、次のステレオになる可能性があります。 2つのチャンネルが同じであったとしても、2つのチャンネルがある場合は2つのチャンネルがあると報告したいと思います。 – Brad

+0

それでは、各チャンネルの最初の部分を取り出してお互いに比較してみませんか?それらが同じであればモノではないがステレオである。たとえば、myArrayBuffer.getChannelData(channel)を使用します。言い換えれば、自分で作ることは簡単な方法ではありませんが、可能です。 –

答えて

0

〜1:方法はありません。 〜2:コメントを参照してください。

関連する問題