私は以下のような要素オプションを設定する関数を持っています。Javascript可変値型の場合
player.onTracksChanged_ = function(event) {
// Update the track lists.
var lists = {
video: document.getElementById('videoTracks'),
audio: document.getElementById('audiotrackButton'),
text: document.getElementById('captionButton')
};
var formatters = {
video: function(track) {
return track.width + 'x' + track.height + ', ' +
track.bandwidth + ' bits/s';
},
audio: function(track) {
return 'language: ' + track.language + ', ' +
track.bandwidth + ' bits/s';
},
text: function(track) {
return 'language: ' + track.language + ' ' +
'(' + track.kind + ')';
}
};
// Clear the old track lists.
Object.keys(lists).forEach(function(type) {
var list = lists[type];
while (list.firstChild) {
list.removeChild(list.firstChild);
}
});
// Populate with the new tracks.
var tracks = player.getTracks();
tracks.sort(function(t1, t2) {
// Sort by language, then by bandwidth.
if (t1.language) {
var ret = t1.language.localeCompare(t2.language);
if (ret) return ret;
}
return t1.bandwidth - t2.bandwidth;
});
tracks.forEach(function(track) {
var list = lists[track.type];
var option = document.createElement('option');
option.textContent = formatters[track.type](track);
option.track = track;
option.value = track.id;
option.selected = track.active;
list.appendChild(option);
});
};
私は何を達成しようとしていることは「トラック」の各「タイプ」の数が2以上であるかどうかを判断し、この基づいてif文、これは私が持っているものです。 -
var mediaTracks = player.getTracks();
if (mediaTracks.length >= 2) {
console.log('there are more than 2 tracks');
} else {
console.log('there are less than 2 tracks');
};
実際に、私はより多くのこのような何か実行する必要があります - そして、
var mediaTracksVideo = player.getTracks(video)
var mediaTracksAudio = player.getTracks(audio)
ような何か: - (mediaTracksAudio> = 2){...
場合 をしかし、私はplayer.getTracks(オーディオ)を試してみます。コンソールログに「オーディオが定義されていません」と表示されます。
理由は何ですか?
私はそれがパラメータで 'audio'だけでなく、' formatters.audio'または 'lists.audio'でなければならないと思っています –
formatters.audio()は、オーディオが関数として定義されているので大丈夫でしょうか? –
実際、欲しいのは 'player.getTracks( 'audio')' –