J'ai un élément vidéo, avec des données ajoutées via MSE. J'essaie de déterminer combien de canaux audio il y a dans chaque piste.Obtention du nombre de canaux audio pour un AudioTrack
Les objets AudioTrack eux-mêmes n'ont pas de propriété avec cette information. La seule façon que je sais aller à ce sujet est d'utiliser l'API Web Audio:
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;
}));
Pour une vidéo avec une seule piste mono, je compte obtenir [1]
. Pour une vidéo avec une seule piste stéréo, je m'attends à obtenir [2]
. Pourtant, chaque fois que je reçois [2]
, peu importe le nombre de canaux dans la source d'origine.
Questions:
- est-il une bonne manière directe pour obtenir le nombre de canaux dans un AudioTrack?
- Y a-t-il autre chose que je pourrais faire avec l'API Web Audio pour obtenir le bon nombre de canaux?
Je pense que sur mono les deux canaux sont les mêmes? –
@KilianHertel Oui, mais cela ne me dit rien sur le nombre de canaux sous-jacents. Je pourrais échantillonner l'audio et il pourrait être mono à un moment, et être stéréo le prochain. Même dans le cas où les deux canaux étaient identiques tout le temps, je voudrais quand même signaler qu'il y a deux canaux s'il y a deux canaux. – Brad
Alors pourquoi ne prenez-vous pas la première partie de chaque canal et comparez-les les uns avec les autres? Si elles sont identiques elles sont mono sinon elles sont stéréo. Par exemple avec myArrayBuffer.getChannelData (channel); En d'autres termes, il n'y a pas de moyen facile de faire soi-même, mais c'est possible. –