本文整理汇总了C++中TextTrack::captionsKeyword方法的典型用法代码示例。如果您正苦于以下问题:C++ TextTrack::captionsKeyword方法的具体用法?C++ TextTrack::captionsKeyword怎么用?C++ TextTrack::captionsKeyword使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TextTrack
的用法示例。
在下文中一共展示了TextTrack::captionsKeyword方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: rebuildTrackListMenu
void MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu()
{
#if ENABLE(VIDEO_TRACK)
// Remove any existing content.
removeChildren();
m_menuItems.clear();
m_trackListHasChanged = false;
if (!mediaController()->hasClosedCaptions())
return;
HTMLMediaElement* mediaElement = toParentMediaElement(this);
if (!mediaElement)
return;
TextTrackList* trackList = mediaElement->textTracks();
if (!trackList || !trackList->length())
return;
Document* doc = document();
RefPtr<Element> captionsSection = doc->createElement(sectionTag, ASSERT_NO_EXCEPTION);
RefPtr<Element> captionsHeader = doc->createElement(h3Tag, ASSERT_NO_EXCEPTION);
captionsHeader->appendChild(doc->createTextNode(textTrackClosedCaptionsText()));
captionsSection->appendChild(captionsHeader);
RefPtr<Element> captionsMenuList = doc->createElement(ulTag, ASSERT_NO_EXCEPTION);
RefPtr<Element> subtitlesSection = doc->createElement(sectionTag, ASSERT_NO_EXCEPTION);
RefPtr<Element> subtitlesHeader = doc->createElement(h3Tag, ASSERT_NO_EXCEPTION);
subtitlesHeader->appendChild(doc->createTextNode(textTrackSubtitlesText()));
subtitlesSection->appendChild(subtitlesHeader);
RefPtr<Element> subtitlesMenuList = doc->createElement(ulTag, ASSERT_NO_EXCEPTION);
RefPtr<Element> trackItem;
trackItem = doc->createElement(liTag, ASSERT_NO_EXCEPTION);
trackItem->appendChild(doc->createTextNode(textTrackOffText()));
trackItem->setAttribute(trackIndexAttributeName(), textTracksOffAttrValue, ASSERT_NO_EXCEPTION);
captionsMenuList->appendChild(trackItem);
m_menuItems.append(trackItem);
trackItem = doc->createElement(liTag, ASSERT_NO_EXCEPTION);
trackItem->appendChild(doc->createTextNode(textTrackOffText()));
trackItem->setAttribute(trackIndexAttributeName(), textTracksOffAttrValue, ASSERT_NO_EXCEPTION);
subtitlesMenuList->appendChild(trackItem);
m_menuItems.append(trackItem);
bool hasCaptions = false;
bool hasSubtitles = false;
for (unsigned i = 0, length = trackList->length(); i < length; ++i) {
TextTrack* track = trackList->item(i);
trackItem = doc->createElement(liTag, ASSERT_NO_EXCEPTION);
// Add a custom attribute to the <li> element which will allow
// us to easily associate the user tapping here with the
// track. Since this list is rebuilt if the tracks change, we
// should always be in sync.
trackItem->setAttribute(trackIndexAttributeName(), String::number(i), ASSERT_NO_EXCEPTION);
AtomicString labelText = track->label();
if (labelText.isNull() || labelText.isEmpty())
labelText = displayNameForLanguageLocale(track->language());
if (labelText.isNull() || labelText.isEmpty())
labelText = textTrackNoLabelText();
trackItem->appendChild(doc->createTextNode(labelText));
if (track->kind() == track->captionsKeyword()) {
hasCaptions = true;
insertTextTrackMenuItemIntoSortedContainer(trackItem, captionsMenuList);
}
if (track->kind() == track->subtitlesKeyword()) {
hasSubtitles = true;
insertTextTrackMenuItemIntoSortedContainer(trackItem, subtitlesMenuList);
}
m_menuItems.append(trackItem);
}
captionsSection->appendChild(captionsMenuList);
subtitlesSection->appendChild(subtitlesMenuList);
if (hasCaptions)
appendChild(captionsSection);
if (hasSubtitles)
appendChild(subtitlesSection);
updateDisplay();
#endif
}