本文整理汇总了C++中TextTrackCue::track方法的典型用法代码示例。如果您正苦于以下问题:C++ TextTrackCue::track方法的具体用法?C++ TextTrackCue::track怎么用?C++ TextTrackCue::track使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TextTrackCue
的用法示例。
在下文中一共展示了TextTrackCue::track方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: updateTextTrackDisplay
void MediaControlRootElement::updateTextTrackDisplay()
{
if (!m_textDisplayContainer)
createTextTrackDisplay();
CueList activeCues = toParentMediaElement(m_textDisplayContainer)->currentlyActiveCues();
m_textTrackDisplay->removeChildren();
bool nothingToDisplay = true;
for (size_t i = 0; i < activeCues.size(); ++i) {
TextTrackCue* cue = activeCues[i].data();
ASSERT(cue->isActive());
if (!cue->track() || cue->track()->mode() != TextTrack::SHOWING)
continue;
String cueText = cue->text();
if (!cueText.isEmpty()) {
if (!nothingToDisplay)
m_textTrackDisplay->appendChild(document()->createElement(HTMLNames::brTag, false), ASSERT_NO_EXCEPTION);
m_textTrackDisplay->appendChild(document()->createTextNode(cueText), ASSERT_NO_EXCEPTION);
nothingToDisplay = false;
}
}
if (!nothingToDisplay)
m_textDisplayContainer->show();
else
m_textDisplayContainer->hide();
}
示例2: hasEquivalentStartTime
bool TextTrackCue::hasEquivalentStartTime(const TextTrackCue& cue) const
{
MediaTime startTimeVariance = MediaTime::zeroTime();
if (track())
startTimeVariance = track()->startTimeVariance();
else if (cue.track())
startTimeVariance = cue.track()->startTimeVariance();
return abs(abs(startMediaTime()) - abs(cue.startMediaTime())) <= startTimeVariance;
}
示例3: isReachableFromOpaqueRoots
bool JSTextTrackCueOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor)
{
JSTextTrackCue* jsTextTrackCue = jsCast<JSTextTrackCue*>(handle.get().asCell());
TextTrackCue* textTrackCue = static_cast<TextTrackCue*>(jsTextTrackCue->impl());
// If the cue is firing event listeners, its wrapper is reachable because
// the wrapper is responsible for marking those event listeners.
if (textTrackCue->isFiringEventListeners())
return true;
// If the cue has no event listeners and has no custom properties, it is not reachable.
if (!textTrackCue->hasEventListeners() && !jsTextTrackCue->hasCustomProperties())
return false;
// If the cue is not associated with a track, it is not reachable.
if (!textTrackCue->track())
return false;
return visitor.containsOpaqueRoot(root(textTrackCue->track()));
}
示例4: visitChildren
void JSTextTrackCue::visitChildren(JSCell* cell, SlotVisitor& visitor)
{
JSTextTrackCue* jsTextTrackCue = jsCast<JSTextTrackCue*>(cell);
ASSERT_GC_OBJECT_INHERITS(jsTextTrackCue, &s_info);
COMPILE_ASSERT(StructureFlags & OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
ASSERT(jsTextTrackCue->structure()->typeInfo().overridesVisitChildren());
Base::visitChildren(jsTextTrackCue, visitor);
// Mark the cue's track root if it has one.
TextTrackCue* textTrackCue = static_cast<TextTrackCue*>(jsTextTrackCue->impl());
if (TextTrack* textTrack = textTrackCue->track())
visitor.addOpaqueRoot(root(textTrack));
textTrackCue->visitJSEventListeners(visitor);
}
示例5: updateDisplay
void MediaControlTextTrackContainerElement::updateDisplay()
{
HTMLMediaElement* mediaElement = toParentMediaElement(this);
// 1. If the media element is an audio element, or is another playback
// mechanism with no rendering area, abort these steps. There is nothing to
// render.
if (!mediaElement->isVideo())
return;
// 2. Let video be the media element or other playback mechanism.
HTMLVideoElement* video = static_cast<HTMLVideoElement*>(mediaElement);
// 3. Let output be an empty list of absolutely positioned CSS block boxes.
Vector<RefPtr<HTMLDivElement> > output;
// 4. If the user agent is exposing a user interface for video, add to
// output one or more completely transparent positioned CSS block boxes that
// cover the same region as the user interface.
// 5. If the last time these rules were run, the user agent was not exposing
// a user interface for video, but now it is, let reset be true. Otherwise,
// let reset be false.
// There is nothing to be done explicitly for 4th and 5th steps, as
// everything is handled through CSS. The caption box is on top of the
// controls box, in a container set with the -webkit-box display property.
// 6. Let tracks be the subset of video's list of text tracks that have as
// their rules for updating the text track rendering these rules for
// updating the display of WebVTT text tracks, and whose text track mode is
// showing or showing by default.
// 7. Let cues be an empty list of text track cues.
// 8. For each track track in tracks, append to cues all the cues from
// track's list of cues that have their text track cue active flag set.
CueList activeCues = video->currentlyActiveCues();
// 9. If reset is false, then, for each text track cue cue in cues: if cue's
// text track cue display state has a set of CSS boxes, then add those boxes
// to output, and remove cue from cues.
// There is nothing explicitly to be done here, as all the caching occurs
// within the TextTrackCue instance itself. If parameters of the cue change,
// the display tree is cleared.
// 10. For each text track cue cue in cues that has not yet had
// corresponding CSS boxes added to output, in text track cue order, run the
// following substeps:
for (size_t i = 0; i < activeCues.size(); ++i) {
TextTrackCue* cue = activeCues[i].data();
ASSERT(cue->isActive());
if (!cue->track() || !cue->track()->isRendered())
continue;
RefPtr<TextTrackCueBox> displayBox = cue->getDisplayTree();
if (displayBox->hasChildNodes() && !contains(static_cast<Node*>(displayBox.get())))
// Note: the display tree of a cue is removed when the active flag of the cue is unset.
appendChild(displayBox, ASSERT_NO_EXCEPTION, false);
}
// 11. Return output.
hasChildNodes() ? show() : hide();
}
示例6: updateDisplay
void MediaControlTextTrackContainerElement::updateDisplay()
{
if (!mediaController()->closedCaptionsVisible())
removeChildren();
HTMLMediaElement* mediaElement = parentMediaElement(this);
// 1. If the media element is an audio element, or is another playback
// mechanism with no rendering area, abort these steps. There is nothing to
// render.
if (!mediaElement || !mediaElement->isVideo())
return;
// 2. Let video be the media element or other playback mechanism.
HTMLVideoElement* video = toHTMLVideoElement(mediaElement);
// 3. Let output be an empty list of absolutely positioned CSS block boxes.
Vector<RefPtr<HTMLDivElement>> output;
// 4. If the user agent is exposing a user interface for video, add to
// output one or more completely transparent positioned CSS block boxes that
// cover the same region as the user interface.
// 5. If the last time these rules were run, the user agent was not exposing
// a user interface for video, but now it is, let reset be true. Otherwise,
// let reset be false.
// There is nothing to be done explicitly for 4th and 5th steps, as
// everything is handled through CSS. The caption box is on top of the
// controls box, in a container set with the -webkit-box display property.
// 6. Let tracks be the subset of video's list of text tracks that have as
// their rules for updating the text track rendering these rules for
// updating the display of WebVTT text tracks, and whose text track mode is
// showing or showing by default.
// 7. Let cues be an empty list of text track cues.
// 8. For each track track in tracks, append to cues all the cues from
// track's list of cues that have their text track cue active flag set.
CueList activeCues = video->currentlyActiveCues();
// 9. If reset is false, then, for each text track cue cue in cues: if cue's
// text track cue display state has a set of CSS boxes, then add those boxes
// to output, and remove cue from cues.
// There is nothing explicitly to be done here, as all the caching occurs
// within the TextTrackCue instance itself. If parameters of the cue change,
// the display tree is cleared.
// 10. For each text track cue cue in cues that has not yet had
// corresponding CSS boxes added to output, in text track cue order, run the
// following substeps:
for (size_t i = 0; i < activeCues.size(); ++i) {
TextTrackCue* cue = activeCues[i].data();
ASSERT(cue->isActive());
if (!cue->track() || !cue->track()->isRendered() || !cue->isActive() || cue->text().isEmpty())
continue;
RefPtr<TextTrackCueBox> displayBox = cue->getDisplayTree(m_videoDisplaySize.size());
if (displayBox->hasChildNodes() && !contains(displayBox.get())) {
// Note: the display tree of a cue is removed when the active flag of the cue is unset.
appendChild(displayBox, ASSERT_NO_EXCEPTION, AttachNow);
cue->setFontSize(m_fontSize, m_videoDisplaySize.size(), m_fontSizeIsImportant);
}
}
// 11. Return output.
if (hasChildNodes()) {
show();
if (mediaElement->requiresTextTrackRepresentation()) {
if (!m_textTrackRepresentation)
m_textTrackRepresentation = TextTrackRepresentation::create(this);
mediaElement->setTextTrackRepresentation(m_textTrackRepresentation.get());
if (Page* page = document().page())
m_textTrackRepresentation->setContentScale(page->deviceScaleFactor());
m_textTrackRepresentation->update();
setInlineStyleProperty(CSSPropertyWidth, m_videoDisplaySize.size().width(), CSSPrimitiveValue::CSS_PX);
setInlineStyleProperty(CSSPropertyHeight, m_videoDisplaySize.size().height(), CSSPrimitiveValue::CSS_PX);
}
} else {
hide();
clearTextTrackRepresentation();
}
}
示例7: updateDisplay
void MediaControlTextTrackContainerElement::updateDisplay()
{
if (!mediaElement().closedCaptionsVisible()) {
removeChildren();
return;
}
// 1. If the media element is an audio element, or is another playback
// mechanism with no rendering area, abort these steps. There is nothing to
// render.
if (isHTMLAudioElement(mediaElement()))
return;
// 2. Let video be the media element or other playback mechanism.
HTMLVideoElement& video = toHTMLVideoElement(mediaElement());
// 3. Let output be an empty list of absolutely positioned CSS block boxes.
// 4. If the user agent is exposing a user interface for video, add to
// output one or more completely transparent positioned CSS block boxes that
// cover the same region as the user interface.
// 5. If the last time these rules were run, the user agent was not exposing
// a user interface for video, but now it is, let reset be true. Otherwise,
// let reset be false.
// There is nothing to be done explicitly for 4th and 5th steps, as
// everything is handled through CSS. The caption box is on top of the
// controls box, in a container set with the -webkit-box display property.
// 6. Let tracks be the subset of video's list of text tracks that have as
// their rules for updating the text track rendering these rules for
// updating the display of WebVTT text tracks, and whose text track mode is
// showing or showing by default.
// 7. Let cues be an empty list of text track cues.
// 8. For each track track in tracks, append to cues all the cues from
// track's list of cues that have their text track cue active flag set.
CueList activeCues = video.currentlyActiveCues();
// 9. If reset is false, then, for each text track cue cue in cues: if cue's
// text track cue display state has a set of CSS boxes, then add those boxes
// to output, and remove cue from cues.
// There is nothing explicitly to be done here, as all the caching occurs
// within the TextTrackCue instance itself. If parameters of the cue change,
// the display tree is cleared.
// 10. For each text track cue cue in cues that has not yet had
// corresponding CSS boxes added to output, in text track cue order, run the
// following substeps:
for (size_t i = 0; i < activeCues.size(); ++i) {
TextTrackCue* cue = activeCues[i].data();
ASSERT(cue->isActive());
if (!cue->track() || !cue->track()->isRendered() || !cue->isActive())
continue;
cue->updateDisplay(m_videoDisplaySize.size(), *this);
}
// 11. Return output.
if (hasChildren())
show();
else
hide();
}
开发者ID:PDi-Communication-Systems-Inc,项目名称:lollipop_external_chromium_org,代码行数:66,代码来源:MediaControlElements.cpp