Releases: warren-bank/Android-ExoPlayer-AirPlay-Receiver
Releases · warren-bank/Android-ExoPlayer-AirPlay-Receiver
v2.0.7
improve title displayed in notification for active media item add position of item in media queue: [p/t] => position of total
v2.0.6
customize "PlayerNotificationManager" hide notification when queue is empty
v2.0.5
remove unnecessary class import
v2.0.4
initialize visibility of buttons that display with PlayerControlView
v2.0.3
fix: convert file paths in playlists to file: URIs * this worked correctly in the 'v01' branch because playlists were processed differently * in 'v01': - after media items were extracted from a playlist, each item was added to exoplayer's media queue individually - the workflow for adding a single playlist item followed the same path as any other media item, and this included normalizing file paths * in 'v02': - after media items are extracted from a playlist, all items are added to exoplayer's media queue atomically - this list of new playlist items needed normalization * additionally: - remove UTF-8 BOM when reading a file from storage * particular case: - Total Commander has a great feature to easily create playlists - right-click context menu for media files includes: 'Add to Queue' - Total Commander plays the media file in its own internal player - additional media files can be added to its queue (same approach) - Total Commander can save its queue of media files to a playlist * file extension is: .m3u8 * file format is: UTF-8 with BOM - to play this playlist in ExoAirPlayer: * the .m3u8 file extension is treated as an HLS VOD manifest - each video in the playlist will play in sequential order - each video is NOT parsed out of the playlist, nor individually added to the ExoPlayer media queue * if the file extension is simply changed to: .m3u - everything works as expected * additionally: - suddenly the "PlayerNotificationManager" PendingIntent stopped working; maybe it's only under certain conditions.. idk - error: java.lang.SecurityException: Permission Denial: starting Intent { cmp=.ui.VideoPlayerActivity } from null (...) not exported - fix: * in AndroidManifest.xml, add to VideoPlayerActivity: android:exported="true"
v2.0.2
add "PlayerNotificationManager" needs a few finishing touches, but works great
v2.0.1
enable feature: repeat mode * default mode = repeat all * toggle button = repeat all, repeat one, none notes: ====== * a concerning issue is how ExoPlayer stops streaming HLS video when the server is unreliable and buffer can become depleted (ie: response time for chunk requests varies widely) * anecdotally, this feature seems to help; but it's not a fix
v2.0.0
completely fixed the Threading issue * now that all calls to ExoPlayer are made on the main UI Thread: - all features appear to work perfectly without any quirks - logcat is as clean as a whistle * contains crazy verbose logging * not a single warning or error after lots of testing status: ======= * atm, I'm just happy that this open-heart surgery went so well; the end result is pretty much exactly what I set out to achieve * next steps, I want to add a notification with playback controls. - buttons to: * pause/resume, skip to prev/next track, etc - click to: * open video player activity * rebind exoplayer to a playerview - note: low-level way to achieve this now is to either: * play an empty URL (SPA validation requires whitespace) ie: curl -X POST -d "" "${ip}/play" * use a new endpoint that hasn't yet been added to the SPA ie: curl -X POST -d "" "${ip}/show-player" - this is all off-the-shelf stuff, but I need to wire it into the PlayerManager
v1.0.24
fix: copy/paste mistake
v1.0.23
never bind to a network interface that doesn't support multicast effectively filters connected VPN tunnels observations: ============= * OpenVPN for Android - when VPN is connected before service is started on receiver: * service correctly binds to LAN interface (not VPN) * clients on LAN can communicate with receiver through service - when service is started before VPN is connected on receiver: * same behavior once VPN is connected - links: https://github.com/schwabe/ics-openvpn - tested with v0.6.64: https://f-droid.org/archive/de.blinkt.openvpn_145.apk * strongSwan (IKEv1, IKEv2) - when VPN is connected before service is started on receiver: * service correctly binds to LAN interface (not VPN) * clients on LAN cannot communicate with receiver through service - when service is started before VPN is connected on receiver: * same behavior once VPN is connected - links: https://wiki.strongswan.org/projects/strongswan/wiki/AndroidVPNClient https://download.strongswan.org/Android/ - tested with v1.9.6: https://download.strongswan.org/Android/strongSwan-1.9.6.apk