Releases: warren-bank/Android-WebCast
Releases · warren-bank/Android-WebCast
release build: v04.08.02
add resource locks to 'VideoActivity': wakelock, wifilock
release build: v04.08.01
update to when HTTP request headers are updated for videos in queue
release build: v04.08.00
update the default bookmarks
release build: v04.07.04
enable LocalStorage access in WebView to allow JWPlayer 7+ to load references: https://stackoverflow.com/questions/35298419/android-webview-jwplayer7-cannot-read-property-jwplayer-volume-of-null https://stackoverflow.com/a/36087492
release build: v04.07.02
fix #1: thanks to @sagorahmed for reporting this error on Android 6.0
release build: v04.07.01
UI fix: when casting, hide ViewGroup containing video player For some reason, only hiding the video player wasn't sufficient. This minor tweak completely removes the black box above the playlist.
release build: v04.07.00
add ability to rename persistent bookmarks
release build: v04.06.00
bug fix: uncaught exception when CastSession ends in "CAST_ONLY" mode
-------------------------------------------------------------------
issue:
* uncaught exception leads to crash
steps to reproduce:
* pause "VideoActivity"
* click "stop" on TV remote control to end CastSession
-------------------------------------------------------------------
CastPlayer:
===========
onSessionEnded()
-> setRemoteMediaClient(null)
-> sessionAvailabilityListener.onCastSessionUnavailable()
VideoManager:
=============
onCastSessionUnavailable()
-> release(false)
-> release_castPlayer(false)
-> castPlayer.release()
CastPlayer:
===========
release()
-> sessionManager.endCurrentSession(false)
-> ERROR: because this entire chain of events started when the current session ended..
solution:
=========
in: VideoManager
in: -> onCastSessionUnavailable
old: -> release(false)
new: -> release(true) // retain_cast_session
-------------------------------------------------------------------
old:
====
@Override
public void onCastSessionUnavailable() {
if (castPlayer == null) return;
if (playbackMode == PlaybackMode.CAST_ONLY) {
setPlaybackMode(PlaybackMode.RELEASED);
}
else {
setCurrentPlayer(exoPlayer);
}
}
new:
====
@Override
public void onCastSessionUnavailable() {
if (castPlayer == null) return;
if (playbackMode == PlaybackMode.CAST_ONLY) {
setPlaybackMode(PlaybackMode.RELEASED_ALL_BUT_CAST_SESSION);
}
else {
setCurrentPlayer(exoPlayer);
}
}
-------------------------------------------------------------------
release build: v04.05.00
add "MediaIntentReceiver": functional cast notification toolbar
release build: v04.04.00
bug fix: add "RELEASED_ALL_BUT_CAST_SESSION" mode
issue this solves:
- in "BrowserActivity":
- select video URL(s) to watch
- in "VideoActivity":
- start a cast session
- playlist of video URLs appears on screen
- when a video in playlist is clicked:
- video queue loads in Chromecast
- position in queue skips to selected playlist item
- "onPause" runs when Activity screen is closed
- "PlayerManager" enters "CAST_ONLY" mode and releases all other resources
- in "BrowserActivity":
- select video URL(s) to watch
- in "VideoActivity":
- "onResume" runs and detects that "PlayerManager" is running in "CAST_ONLY" mode
- previously:
- "PlayerManager" transitioned: "CAST_ONLY" -> "RELEASED" -> "NORMAL"
- "RELEASED" mode releases all resources, including closing the CastSession
- "currentPlayer" is an instance of ExoPlayer
- now:
- "PlayerManager" transitions: "CAST_ONLY" -> "RELEASED_ALL_BUT_CAST_SESSION" -> "NORMAL"
- "RELEASED_ALL_BUT_CAST_SESSION" mode is identical to "RELEASED", but CastSession is not closed
- "currentPlayer" is an instance of CastPlayer
- the previous video queue that was casting continues uninterupted
- the new playlist of video URLs appears on screen
- when a video in playlist is clicked:
- new video queue loads in Chromecast
- position in new queue skips to selected playlist item
- previously:
- "onResume" runs and detects that "PlayerManager" is running in "CAST_ONLY" mode