Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Open sidebar
Ewout ter Hoeven
VLC-Android
Commits
dd65488e
Commit
dd65488e
authored
Jan 25, 2018
by
Geoffrey Métais
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Restart mediaplayer on error
parent
bf6ea964
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
15 additions
and
2 deletions
+15
-2
vlc-android/res/values/strings.xml
vlc-android/res/values/strings.xml
+1
-0
vlc-android/src/org/videolan/vlc/media/PlayerController.kt
vlc-android/src/org/videolan/vlc/media/PlayerController.kt
+14
-2
No files found.
vlc-android/res/values/strings.xml
View file @
dd65488e
...
...
@@ -586,4 +586,5 @@
<string
name=
"browser_storages"
>
Storages
</string>
<string
name=
"msg_delete_failed"
>
Failed to delete media %1$s
</string>
<string
name=
"renderer_list_title"
>
Displays
</string>
<string
name=
"feedback_player_crashed"
>
Sorry, VLC just crashed. Please try again.
</string>
</resources>
vlc-android/src/org/videolan/vlc/media/PlayerController.kt
View file @
dd65488e
...
...
@@ -3,11 +3,15 @@ package org.videolan.vlc.media
import
android.net.Uri
import
android.support.annotation.MainThread
import
android.support.v4.media.session.PlaybackStateCompat
import
android.widget.Toast
import
kotlinx.coroutines.experimental.CoroutineExceptionHandler
import
kotlinx.coroutines.experimental.android.UI
import
kotlinx.coroutines.experimental.async
import
kotlinx.coroutines.experimental.launch
import
kotlinx.coroutines.experimental.newSingleThreadContext
import
org.videolan.libvlc.*
import
org.videolan.medialibrary.media.MediaWrapper
import
org.videolan.vlc.R
import
org.videolan.vlc.RendererDelegate
import
org.videolan.vlc.VLCApplication
import
org.videolan.vlc.gui.preferences.PreferencesActivity
...
...
@@ -17,6 +21,7 @@ import org.videolan.vlc.util.VLCOptions
@Suppress
(
"EXPERIMENTAL_FEATURE_WARNING"
)
class
PlayerController
:
IVLCVout
.
Callback
,
MediaPlayer
.
EventListener
{
private
val
exceptionHandler
by
lazy
(
LazyThreadSafetyMode
.
NONE
)
{
CoroutineExceptionHandler
{
_
,
_
->
onPlayerError
()
}
}
private
val
playerContext
by
lazy
(
LazyThreadSafetyMode
.
NONE
)
{
newSingleThreadContext
(
"vlc-player"
)
}
private
val
settings
by
lazy
(
LazyThreadSafetyMode
.
NONE
)
{
VLCApplication
.
getSettings
()
}
...
...
@@ -58,7 +63,7 @@ class PlayerController : IVLCVout.Callback, MediaPlayer.EventListener {
mediaplayerEventListener
=
listener
seekable
=
true
pausable
=
true
launch
(
playerContext
)
{
launch
(
playerContext
+
exceptionHandler
)
{
mediaplayer
.
media
=
media
}.
join
()
mediaplayer
.
setEventListener
(
this
@PlayerController
)
...
...
@@ -230,7 +235,7 @@ class PlayerController : IVLCVout.Callback, MediaPlayer.EventListener {
suspend
fun
expand
():
MediaList
?
{
return
mediaplayer
.
media
?.
let
{
mediaplayer
.
setEventListener
(
null
)
val
ml
=
async
{
it
.
subItems
()
}.
await
()
val
ml
=
async
(
playerContext
+
exceptionHandler
)
{
it
.
subItems
()
}.
await
()
it
.
release
()
mediaplayer
.
setEventListener
(
this
@PlayerController
)
return
ml
...
...
@@ -250,4 +255,11 @@ class PlayerController : IVLCVout.Callback, MediaPlayer.EventListener {
}
mediaplayerEventListener
?.
onEvent
(
event
)
}
private
fun
onPlayerError
()
{
launch
(
UI
)
{
restart
()
Toast
.
makeText
(
VLCApplication
.
getAppContext
(),
VLCApplication
.
getAppContext
().
getString
(
R
.
string
.
feedback_player_crashed
),
Toast
.
LENGTH_LONG
).
show
()
}
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment