'./track-enums'에서 {VideoTrackKind} 가져오기;
'./track'에서 트랙 가져오기;
'../utils/merge-options'에서 병합 가져오기;
/**
* 단일 `VideoTrack`의 표현입니다.
*
* @see [사양]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#videotrack}
* @extends 트랙
*/
클래스 VideoTrack 확장 트랙 {
/**
* 이 클래스의 인스턴스를 만듭니다.
*
* @param {객체} [옵션={}]
* 옵션 이름 및 값의 개체
*
* @param {문자열} [옵션.종류='']
* 유효한 {@link VideoTrack~Kind}
*
* @param {string} [options.id='vjs_track_' + Guid.newGUID()]
* 이 AudioTrack의 고유 ID입니다.
*
* @param {문자열} [옵션.라벨='']
* 이 트랙의 메뉴 레이블입니다.
*
* @param {문자열} [옵션.언어='']
* 유효한 두 문자 언어 코드입니다.
*
* @param {부울} [옵션.선택됨]
* 이 트랙이 현재 재생 중인 트랙인 경우.
*/
생성자(옵션 = {}) {
const 설정 = 병합(옵션, {
친절한: VideoTrackKind[options.kind] || ''
});
슈퍼(설정);
선택하자 = 거짓;
/**
* @memberof VideoTrack
* @member {boolean} 선택됨
* 이 `VideoTrack`이 선택되었는지 여부. 이것을 설정할 때
* 선택한 상태가 변경되면 {@link VideoTrack#selectedchange}를 실행합니다.
* @사례
*
* @fires VideoTrack#selectedchange
*/
Object.defineProperty(이것, '선택됨', {
얻다() {
선택 반환;
},
set(newSelected) {
// 유효하지 않거나 변경되지 않은 값
if (newSelected 유형!== '부울' || newSelected === 선택됨) {
반품;
}
선택 = newSelected;
/**
* 이 트랙에서 선택된 변경 사항이 발생하면 실행되는 이벤트입니다. 이를 통해
* 이 트랙을 보유하고 있는 VideoTrackList가 적절하게 작동합니다.
*
* > 메모: 이것은 사양의 일부가 아닙니다! 기본 트랙이 가능합니다.
* 내부적으로는 이벤트가 없습니다.
*
* @event VideoTrack#selectedchange
* @type {이벤트대상~이벤트}
*/
this.trigger('선택된 변경');
}
});
// 사용자가 이 트랙을 선택으로 설정하면
// 그렇지 않으면 선택된 값을 참 값으로 설정합니다.
// 거짓으로 유지
경우 (settings.selected) {
this.selected = 설정.선택됨;
}
}
}
기본 VideoTrack 내보내기;