diff --git a/content/html/content/src/HTMLMediaElement.cpp b/content/html/content/src/HTMLMediaElement.cpp index 91f47a39d5eb..ed72a4045e0b 100755 --- a/content/html/content/src/HTMLMediaElement.cpp +++ b/content/html/content/src/HTMLMediaElement.cpp @@ -3942,7 +3942,9 @@ void HTMLMediaElement::UpdateAudioChannelPlayingState() (!mPaused && (HasAttr(kNameSpaceID_None, nsGkAtoms::loop) || (mReadyState >= nsIDOMHTMLMediaElement::HAVE_CURRENT_DATA && - !IsPlaybackEnded()) || + !IsPlaybackEnded() && + !(mSrcStream && !(mSrcStream->GetTrackTypesAvailable() & + DOMMediaStream::HINT_CONTENTS_AUDIO))) || mPlayingThroughTheAudioChannelBeforeSeek)); if (playingThroughTheAudioChannel != mPlayingThroughTheAudioChannel) { mPlayingThroughTheAudioChannel = playingThroughTheAudioChannel; diff --git a/content/media/DOMMediaStream.h b/content/media/DOMMediaStream.h index c5a82d4b12be..e59c31b40164 100644 --- a/content/media/DOMMediaStream.h +++ b/content/media/DOMMediaStream.h @@ -171,6 +171,8 @@ public: TrackTypeHints GetHintContents() const { return mHintContents; } void SetHintContents(TrackTypeHints aHintContents) { mHintContents = aHintContents; } + TrackTypeHints GetTrackTypesAvailable() const { return mTrackTypesAvailable; } + /** * Create an nsDOMMediaStream whose underlying stream is a SourceMediaStream. */