Android Question EXO Player - MediaPlayer zoom

TILogistic

Expert
Licensed User
Longtime User
Yes.

Basic steps:

TextureView
See:

or
Test
B4X:
   Private SimpleExoPlayer1 As SimpleExoPlayer
   Private SimpleExoPlayerView1 As SimpleExoPlayerView
   ...
   ...
   ...
 
   Dim joView As JavaObject = SimpleExoPlayerView1
   joView.RunMethod("setUseTextureView", Array(True))

Configure gesture detector
B4X:
 Dim jo As JavaObject = SimpleExoPlayerView1
    Dim TouchListener As Object = jo.CreateEvent("android.view.View$OnTouchListener", "TouchListener", False)
    jo.RunMethod("setOnTouchListener", Array(TouchListener))

    Dim ScaleListener As Object = jo.CreateEventFromUI("android.view.ScaleGestureDetector$OnScaleGestureListener", "ScaleListener", True)
    Dim ctxt As JavaObject
    ctxt.InitializeContext
    ScaleDetector.InitializeNewInstance("android.view.ScaleGestureDetector", Array(ctxt, ScaleListener))


B4X:
Sub ScaleListener_OnScale(Detector As JavaObject) As Boolean
    Dim scaleFactor As Float = Detector.RunMethod("getScaleFactor", Null)
    Dim newScale As Float = CurrentScale * scaleFactor
    If newScale < MinScale Then newScale = MinScale
    If newScale > MaxScale Then newScale = MaxScale
    CurrentScale = newScale
    ApplyTransform '---> Sub:  ZOOM + PAN TO VIDEO
    Return True
End Sub

Sub ScaleListener_OnScaleBegin(Detector As JavaObject) As Boolean
    Return True
End Sub

Sub ScaleListener_OnScaleEnd(Detector As JavaObject)
End Sub

 
Last edited:
Upvote 0
Top