Open GoogleCodeExporter opened 8 years ago
Proper behavior:
1.Use a custom receiver that supports MP4 playback
2.Play a MP4 URL
3.Let the video to buffer
What is the expected output?
On buffering, waiting event is raised and player enters into buffering state.
----------------------------------------
Now the issue
1.Use a custom receiver that supports HLS / SS playback
2.Play a HLS URL
3.Let the video buffer
What is the expected output?
On buffering, waiting event must be raised but a paused event is raised where
we need to infer buffering state.
These two behaviors are different.
Extension: 4.Pause the video in buffering state
MP4: pause state is reflected
HLS/SS: buffering state persists instead of pause.
Original comment by mkna...@gmail.com
on 12 Feb 2016 at 10:39
Could you confirm that player.getState['underflow'] is returning true, when
pause state is triggered?
Could you also please reply to our queries below.
1. Could you please test it with latest media player library (1.0.0.25,
https://plus.sandbox.google.com/+LeonNicholls/posts/X1mPREuvJ73)
2. Please share feedback report from Chromecast app/extension with the text
"for Issue 755" in description and share receiver logs here (after reproducing
this issue).
3. Is it possible to share snippet of code where you are facing the issue?
4. Please share the firmware on chromecast
Original comment by vinot...@google.com
on 16 Feb 2016 at 11:17
Additional reference on receiver implementation, see
(https://github.com/googlecast/CastReferencePlayer).
Original comment by vinot...@google.com
on 17 Feb 2016 at 10:58
Hello,
I'm using the receiver implementation given in github - CastReferencePlayer.
Printing logs in onpause event handler as well. Attaching the same.
media player library : 1.0.0.25
Firmware versions used: 46278 & 48342
The code snippet used is part of the castReferencePlayer:
sampleplayer.CastPlayer.prototype.onPause_ = function() {
console.log('onPause');
this.cancelDeferredPlay_('media is paused');
var isIdle = this.state_ === sampleplayer.State.IDLE;
var isDone = this.mediaElement_.currentTime === this.mediaElement_.duration;
var isUnderflow = this.player_ && this.player_.getState()['underflow'];
console.log('Underflow - '+isUnderflow);
if (isUnderflow) {
this.log_('isUnderflow');
this.setState_(sampleplayer.State.BUFFERING, false);
console.log('Setting player state to buffering');
this.mediaManager_.broadcastStatus(/* includeMedia */ false);
} else if (!isIdle && !isDone) {
this.setState_(sampleplayer.State.PAUSED, false);
console.log('Setting player state to paused');
}
this.updateProgress_();
};
Steps:
1. Play HLS live URL from a chrome browser using the chromecast extension &
cast it.
2. Wait for a buffering event.
3. Pause the video
Expected: Pause state on player must be reflected. But a buffering state still
persists.
Original comment by mkna...@gmail.com
on 18 Feb 2016 at 7:28
Attachments:
We are looking into the issue and will update soon
Original comment by vinot...@google.com
on 18 Feb 2016 at 7:48
Original issue reported on code.google.com by
mkna...@gmail.com
on 8 Feb 2016 at 5:09