Reproducción de vídeo de Android (SDK SurfaceView del reproductor de vídeo a pedido en la nube de Alibaba)
Proceso: la aplicación del usuario obtiene las credenciales STS-gt; el servidor emite las credenciales STS-gt; el usuario carga vídeos y obtiene las credenciales STS-gt; -> Reproducción completa de vídeo.
Consulte la documentación de Alibaba Cloud en ========》》》》》》 Guía del usuario de Android AliCloud-Advanced Player
Echemos un vistazo a continuación El gesto clase de control proporcionada por Android
Interfaz
setOnTouchListener(this);
Se definen cuatro estados: NINGUNO = 0, VOLUMEN = 1, BRILLO = 2, FF_REW = 3;
A continuación, veamos el SurfaceViewOnGestureListener personalizado heredado de GestureDetector. En el estado de asignación de valor a OnScroll, de acuerdo con la distancia de deslizamiento, si el punto presionado está en la mitad izquierda de la pantalla, se puede ajustar el brillo. Si está en la mitad derecha de la pantalla, se ajusta el volumen. /p>
d. Llame a los métodos de interfaz respectivos en diversas situaciones
Al avanzar y rebobinar rápidamente, lo que necesitamos saber es cómo se relaciona la distancia que nos deslizamos con la duración del video.
A continuación, podemos comparar la duración total del vídeo con la duración total de la pantalla, de modo que podamos saber qué parte del vídeo se debe a la distancia que se desliza el dedo.
Podemos obtener esta relación mediante l = duración / mySurfaceView.getWidth(); luego agregar el progreso actual a la duración del video en función de qué tan lejos se desliza el dedo hasta la posición del video que desea. quieres jugar
La distancia entre la coordenada x del punto levantado y la coordenada x del punto presionado Si es mayor que 0, significa avance rápido, y si es menor que 0. , significa rebobinar.
Se reproducirá la posición del vídeo.
Hay muchos volúmenes del sistema, incluidos valores de volumen de llamadas, valores de tono de llamada del sistema, valores de volumen de música, valores de volumen de alarma, etc., ¿verdad?
Notas
Utilizamos el valor del volumen de la música para la reproducción de vídeo. De la misma manera, también necesitamos asociar el volumen con la altura. Podemos acercarnos al volumen máximo controlando el. altura, obteniendo así Midiendo la proporción del volumen, se puede saber cuánto representa la distancia de deslizamiento del volumen.
Lo que hay que tener en cuenta aquí es que la actividad es la interfaz actual y la configuración es la interfaz actual. No funcionará después de salir de la interfaz.
El mismo principio que deslizar para ajustar el volumen es averiguar cuánto es la altura de la pantalla por encima del brillo máximo y luego calcular en qué medida la distancia de deslizamiento representa el brillo. (
La razón por la que aparece una pantalla negra es que cuando presionas el botón Inicio y luego haces clic en la aplicación para regresar, solo hay sonido pero no hay imagen. Debido a que estamos usando SurfaceView, cada vez que haces clic en Botón de inicio, SurfaceView se destruirá y luego volverá a crearlo, de modo que nuestro reproductor Alibaba Cloud no esté vinculado a SurfaceView y la pantalla desaparezca.
De esta manera, debemos agregar mySurfaceView. .getHolder().addCallback(this) a SurfaceView, cuando regresemos, entrará en SurfaceCreated, juzgará el logotipo y lo procesará.
Recuerde, asegúrese de volver a asociar aliyunVodPlayer con SurfaceView para poder obtener imágenes y sonidos.
Dado que nuestros videos se almacenan en los servidores de Alibaba Cloud, se requieren credenciales temporales para acceder a los servidores de Alibaba Cloud. Obtenemos el token a través de STS, pero el token tiene un tiempo limitado. Sucede que el reproductor de Alibaba Cloud nos lo proporciona. Se proporciona una interfaz de devolución de llamada para errores de reproducción de video. Solo necesitamos solicitar el Token nuevamente aquí.