void MediaStreamTrack::trackMutedChanged()
{
    if (stopped())
        return;

    if (muted())
        scheduleEventDispatch(Event::create(eventNames().muteEvent, false, false));
    else
        scheduleEventDispatch(Event::create(eventNames().unmuteEvent, false, false));

    configureTrackRendering();
}
void MediaStreamTrack::trackReadyStateChanged()
{
    if (stopped())
        return;

    RealtimeMediaSource::ReadyState readyState = m_privateTrack->readyState();
    if (readyState == RealtimeMediaSource::Live)
        scheduleEventDispatch(Event::create(eventNames().startedEvent, false, false));
    else if (readyState == RealtimeMediaSource::Ended && !m_stoppingTrack)
        scheduleEventDispatch(Event::create(eventNames().endedEvent, false, false));

    configureTrackRendering();
}
示例#3
0
void MediaStreamTrack::sourceStateChanged()
{
    if (m_stopped)
        return;

    MediaStreamSource::ReadyState oldReadyState = m_readyState;
    m_readyState = m_source->readyState();

    if (m_readyState >= MediaStreamSource::Live && oldReadyState == MediaStreamSource::New)
        scheduleEventDispatch(Event::create(eventNames().startedEvent, false, false));
    if (m_readyState == MediaStreamSource::Ended && oldReadyState != MediaStreamSource::Ended)
        scheduleEventDispatch(Event::create(eventNames().endedEvent, false, false));
}
示例#4
0
void MediaStreamTrack::sourceMutedChanged()
{
    if (m_stopped)
        return;

    bool muted = m_source->muted();
    if (m_muted == muted)
        return;

    m_muted = muted;
    if (m_muted)
        scheduleEventDispatch(Event::create(eventNames().muteEvent, false, false));
    else
        scheduleEventDispatch(Event::create(eventNames().unmuteEvent, false, false));

    configureTrackRendering();
}
示例#5
0
void MediaStreamTrack::stopProducingData()
{
    if (m_stopped || !m_source)
        return;

    // Set m_stopped before stopping the source because that may result in a call to sourceChangedState
    // and we only want to dispatch the 'ended' event if necessary.
    m_stopped = true;
    m_source->stop();

    if (m_readyState != MediaStreamSource::Ended)
        scheduleEventDispatch(Event::create(eventNames().endedEvent, false, false));
}