Commit graph

36 commits

Author SHA1 Message Date
Jarne Demeulemeester
ad5e722d44
Introduce klint (#186)
* Add ktlint plugin

* Make code ktlint compliant

* Make code ktlint compliant
2022-10-29 21:17:48 +02:00
Jarne Demeulemeester
6ed2f2ff7b
Fix player crashing when no PlayerItems are passed 2022-08-30 10:13:02 +02:00
Jarne Demeulemeester
f400571e04
Customize the seeking increments (#128)
* Add the ability to customize the seeking increments

* Fix number keyboard image cache size

* Clean up fragment_settings_player.xml
2022-07-05 09:06:26 +02:00
Jarne Demeulemeester
bcdada538d
Upgrade ExoPlayer to 2.18 (#126)
* Upgrade ExoPlayer to 2.18

* Change the position polling from every 2 to every 5 sec

* Make internalMediaItems non-nullable

* Clean up mpv track names

* Reduce explayer ffmpeg extension size by not including all decoders

Removed decoders vorbis, opus, flac, pcm_mulaw, pcm_alaw, mp3, aac because these are already supported by Android.

* Clean up preferredLanguage preferences
2022-07-03 14:02:32 +02:00
Jarne Demeulemeester
6f0d5a13a8
Add support for external subtitles (#118)
* Add support for external subtitles in exoplayer

* Enable ASS/SSA external subtitles

* Enable VTT external subtitles

* Clean up

* Fix srt and vtt

Jellyfin currently converts vtt to srt without changing the codec tag. This makes the player unable to decode the subs because it thinks the file is vtt while in fact it is srt.

* Fix for vtt subs

Jellyfin return a srt stream when it should return a vtt stream
2022-07-02 17:00:00 +02:00
Jarne Demeulemeester
7467f89f82
Clean up some code 2022-06-11 21:51:30 +02:00
Jarne Demeulemeester
a785d6d3f8
Upgrade ExoPlayer to 2.16.1 (#115)
* Upgrade ExoPlayer to 2.26.1 and fix mpv player

* Re-enable ffmpeg extension
2022-05-02 21:44:22 +02:00
NIK679
92e4b8eafc
Add option to disable subtitle in mpv (#110)
* add empty subtitle track

* toggle selected variable

* does this work

* Revert "toggle selected variable"

This reverts commit 87589f1d34e741205674e66855b53d79a1f70adb.

* this should work

* this should work 2.0

* remove empty track if there are no subtitle tracks
2022-04-23 19:46:06 +02:00
NIK679
3f37318c05
Add option to display extended episode title (SXX:EXX - Title) in player (#78)
* Add option to display extended episode title (SXX:EXX - Title) in player

* ocd fix

* add null check condition

* Move setting to player category

Yeah this would fit in either Appearance or Player. But I lean more towards Player.

Co-authored-by: Jarne Demeulemeester <jarnedemeulemeester@gmail.com>
2022-02-12 17:15:05 +01:00
Jarne Demeulemeester
99a10446d5
Fix nullable 2022-01-30 20:30:02 +01:00
Jarne Demeulemeester
4b2dd6c672
Save downloads metadata to database (#81)
* Change downloads from metadata files to room database (WIP)

* Disable download progress

* Add file available check + clean up
2022-01-21 17:34:50 +01:00
Jcuhfehl
598c11f299
Improve offline playback (#68)
* Fix download playback tracking bug

* Remove unused permission

* Add overview text to downloadmetadata

* Add visual indicator of whether item is downloaded

* Use downloaded item when available

* Fix "null" overview text in download metadata

* Fix crash when playing downloaded file with mpv

* Clean up

Co-authored-by: jarnedemeulemeester <jarnedemeulemeester@gmail.com>
2021-11-27 12:18:41 +01:00
lsrom
8c5d0bebf0
Add strm support (#66)
Co-authored-by: Jarne Demeulemeester <32322857+jarnedemeulemeester@users.noreply.github.com>
2021-11-16 19:44:49 +01:00
Jcuhfehl
532e9adac1
Add offline playback (#51)
* Add offline playback

* Remove unused values

* Replace downloadutilities extension functions with normal functions

This is to not polute the namespace of fragment and context.

* Replace default Android icons with those from lucide

* Fix deleting downloaded movie

Co-authored-by: Jarne Demeulemeester <32322857+jarnedemeulemeester@users.noreply.github.com>
2021-10-29 21:11:01 +02:00
lsrom
308d97068f
Refactor playback code (#55)
* Refactor playback code

* Fix back state when playing media and rotating device

Problem was playerItems were re-emitted on fragment creation after config change. LiveData by design emit on every subscribe (observe) so to avoid that there are several possibilities.

1) easiest, observe playerItems not in onCreate but in playButton.clickListener. Stupid, since then we need to remember to only observe in this special place.

2) SingleLiveData - kind of hacky since LiveData were designed to behave this way so we don't want to go against their design.

3) Use Kotlin flow instead.

I chose the flow approach since it's Kotlin native and modern way to do things and behaves much more Rx-like. Since now we need to call collect instead of observe and launch in coroutine, I added utility method to make this easier. Also, in the future we might want to improve this further, either by coming up with new way entirely or by at least moving this to parent fragment from which all fragments that want to play media will inherit and thus making it easy to use and maintain.

Co-authored-by: Jarne Demeulemeester <32322857+jarnedemeulemeester@users.noreply.github.com>
2021-10-26 18:11:22 +02:00
NIK679
11ff3b4e16
Add playback speed control to the player (#46)
* add playback speed control to MPV player

* add playback speed control to exoplayer

* remove unnecessary method

* remove unused import

* use gauge icon from lucide

* use gauge icon from lucide

* fix the gauge icon
2021-10-20 20:16:43 +02:00
jarnedemeulemeester
1d0f2b3358
MPVPlayer: Start from playback position 2021-09-18 21:11:45 +02:00
jarnedemeulemeester
64b86f2b40
MPVPlayer: Support for software decoding + clean up 2021-09-18 15:17:20 +02:00
jarnedemeulemeester
0baef5ec2e
MPVPlayer: Improve track selection and some code cleanup 2021-09-17 11:55:35 +02:00
jarnedemeulemeester
87edeabb9a
MPVPlayer: Use preferred languages 2021-09-16 19:00:11 +02:00
jarnedemeulemeester
9cddd50d0e
Select audio and subtitle tracks 2021-09-15 23:13:59 +02:00
jarnedemeulemeester
6d340bd7ab
Add new player controls 2021-09-15 13:42:17 +02:00
jarnedemeulemeester
c9d0d6ab17
Add experimental libMPV player 2021-09-14 16:39:57 +02:00
jarnedemeulemeester
88b5d38ffc
Clean up player code 2021-09-05 18:34:07 +02:00
jarnedemeulemeester
25ac5524d7
Rework how player items are created
Add support for intros and improve loading speed
2021-08-26 15:36:56 +02:00
jarnedemeulemeester
1417d97223
Fix crash in player when no connection to server 2021-08-25 18:10:00 +02:00
jarnedemeulemeester
be385e2519
Allow the user to rotate the player and fix resume playback 2021-08-13 17:38:32 +02:00
jarnedemeulemeester
d67f195789
Rework player to allow for playing multiple episodes in a row 2021-08-05 16:09:08 +02:00
Jarne Demeulemeester
10cd5219ae
Change logging to Timber 2021-07-18 16:00:08 +02:00
Jarne Demeulemeester
53f478c6cf
Select preferred audio and subtitle language 2021-07-17 17:18:37 +02:00
Jarne Demeulemeester
00ec736ff4
Post start, stop and progress of media to the server 2021-07-14 12:00:05 +02:00
Jarne Demeulemeester
e87a9804ec
Use tunneling mode when available, go back when playback finished 2021-07-13 15:05:11 +02:00
Jarne Demeulemeester
be8402fb37
Set starting playback position 2021-07-12 13:26:51 +02:00
Jarne Demeulemeester
e69a653453
Get mediaSources and select version of movie 2021-07-11 16:44:46 +02:00
Jarne Demeulemeester
7f5dea58bc
Improve ExoPlayer (hide systembars and keep screen on) 2021-07-10 14:02:02 +02:00
Jarne Demeulemeester
fcbd7d1f33
First early test of ExoPlayer
Currently only plays some movies
2021-07-07 21:19:47 +02:00