本文整理汇总了C++中TextTrack::isDefault方法的典型用法代码示例。如果您正苦于以下问题:C++ TextTrack::isDefault方法的具体用法?C++ TextTrack::isDefault怎么用?C++ TextTrack::isDefault使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TextTrack
的用法示例。
在下文中一共展示了TextTrack::isDefault方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: perform
void AutomaticTrackSelection::perform(TextTrackList& textTracks)
{
TrackGroup captionAndSubtitleTracks(TrackGroup::CaptionsAndSubtitles);
TrackGroup descriptionTracks(TrackGroup::Description);
TrackGroup chapterTracks(TrackGroup::Chapter);
TrackGroup metadataTracks(TrackGroup::Metadata);
for (size_t i = 0; i < textTracks.length(); ++i) {
TextTrack* textTrack = textTracks.item(i);
if (!textTrack)
continue;
String kind = textTrack->kind();
TrackGroup* currentGroup;
if (kind == TextTrack::subtitlesKeyword() || kind == TextTrack::captionsKeyword()) {
currentGroup = &captionAndSubtitleTracks;
} else if (kind == TextTrack::descriptionsKeyword()) {
currentGroup = &descriptionTracks;
} else if (kind == TextTrack::chaptersKeyword()) {
currentGroup = &chapterTracks;
} else {
ASSERT(kind == TextTrack::metadataKeyword());
currentGroup = &metadataTracks;
}
if (!currentGroup->visibleTrack && textTrack->mode() == TextTrack::showingKeyword())
currentGroup->visibleTrack = textTrack;
if (!currentGroup->defaultTrack && textTrack->isDefault())
currentGroup->defaultTrack = textTrack;
// Do not add this track to the group if it has already been automatically configured
// as we only want to perform selection once per track so that adding another track
// after the initial configuration doesn't reconfigure every track - only those that
// should be changed by the new addition. For example all metadata tracks are
// disabled by default, and we don't want a track that has been enabled by script
// to be disabled automatically when a new metadata track is added later.
if (textTrack->hasBeenConfigured())
continue;
if (textTrack->language().length())
currentGroup->hasSrcLang = true;
currentGroup->tracks.append(textTrack);
}
if (captionAndSubtitleTracks.tracks.size())
performAutomaticTextTrackSelection(captionAndSubtitleTracks);
if (descriptionTracks.tracks.size())
performAutomaticTextTrackSelection(descriptionTracks);
if (chapterTracks.tracks.size())
performAutomaticTextTrackSelection(chapterTracks);
if (metadataTracks.tracks.size())
enableDefaultMetadataTextTracks(metadataTracks);
}
示例2: performAutomaticTextTrackSelection
void AutomaticTrackSelection::performAutomaticTextTrackSelection(const TrackGroup& group)
{
ASSERT(group.tracks.size());
// First, find the track in the group that should be enabled (if any).
HeapVector<Member<TextTrack>> currentlyEnabledTracks;
TextTrack* trackToEnable = nullptr;
TextTrack* defaultTrack = nullptr;
TextTrack* preferredTrack = nullptr;
TextTrack* fallbackTrack = nullptr;
int highestTrackScore = 0;
for (size_t i = 0; i < group.tracks.size(); ++i) {
TextTrack* textTrack = group.tracks[i];
if (m_configuration.disableCurrentlyEnabledTracks && textTrack->mode() == TextTrack::showingKeyword())
currentlyEnabledTracks.append(textTrack);
int trackScore = textTrackSelectionScore(*textTrack);
if (textTrack->kind() == preferredTrackKind())
trackScore += 1;
if (trackScore) {
// * If the text track kind is subtitles or captions and the user has indicated an interest in having a
// track with this text track kind, text track language, and text track label enabled, and there is no
// other text track in the media element's list of text tracks with a text track kind of either subtitles
// or captions whose text track mode is showing
// Let the text track mode be showing.
if (trackScore > highestTrackScore) {
preferredTrack = textTrack;
highestTrackScore = trackScore;
}
if (!defaultTrack && textTrack->isDefault())
defaultTrack = textTrack;
if (!fallbackTrack)
fallbackTrack = textTrack;
} else if (!group.visibleTrack && !defaultTrack && textTrack->isDefault()) {
// * If the track element has a default attribute specified, and there is no other text track in the media
// element's list of text tracks whose text track mode is showing or showing by default
// Let the text track mode be showing by default.
defaultTrack = textTrack;
}
}
if (m_configuration.textTrackKindUserPreference != TextTrackKindUserPreference::Default)
trackToEnable = preferredTrack;
if (!trackToEnable && defaultTrack)
trackToEnable = defaultTrack;
if (!trackToEnable && m_configuration.forceEnableSubtitleOrCaptionTrack && group.kind == TrackGroup::CaptionsAndSubtitles) {
if (fallbackTrack)
trackToEnable = fallbackTrack;
else
trackToEnable = group.tracks[0];
}
if (currentlyEnabledTracks.size()) {
for (size_t i = 0; i < currentlyEnabledTracks.size(); ++i) {
TextTrack* textTrack = currentlyEnabledTracks[i];
if (textTrack != trackToEnable)
textTrack->setMode(TextTrack::disabledKeyword());
}
}
if (trackToEnable)
trackToEnable->setMode(TextTrack::showingKeyword());
}