VideoView en un fondo de pantalla en vivo?

Según otras preguntas android-video-como-uno-vivo-papel pintado , es la única manera de jugar un vídeo en un papel pintado vivo es descodificar usted mismo?

La respuesta corta es sí. La respuesta larga es http://ikaruga2.wordpress.com/2011/06/15/video-live-wallpaper-part-1/

Simplemente use MediaPlayer en lugar de VideoView y use MediaPlayer.setSurface en lugar de MediaPlayer.setDisplay. Si utiliza setDisplay los trucos de MediaPlayer para decirle al SurfaceHolder que mantenga la pantalla en la que no está permitido para LiveWallpapers y lanzará un error.

Utilizo el vídeo de WebM / vpx8 pero esto debe trabajar con lo que MediaPlayer apoya (apenas ponga el archivo video en res / raw)

package com.justinbuser.nativecore; import android.media.MediaPlayer; import android.service.wallpaper.WallpaperService; import android.view.SurfaceHolder; import com.justinbuser.android.Log; public class VideoWallpaperService extends WallpaperService { protected static int playheadTime = 0; @Override public Engine onCreateEngine() { return new VideoEngine(); } class VideoEngine extends Engine { private final String TAG = getClass().getSimpleName(); private final MediaPlayer mediaPlayer; public VideoEngine() { super(); Log.i( TAG, "( VideoEngine )"); mediaPlayer = MediaPlayer.create(getBaseContext(), R.raw.wallpapervideo); mediaPlayer.setLooping(true); } @Override public void onSurfaceCreated( SurfaceHolder holder ) { Log.i( TAG, "onSurfaceCreated" ); mediaPlayer.setSurface(holder.getSurface()); mediaPlayer.start(); } @Override public void onSurfaceDestroyed( SurfaceHolder holder ) { Log.i( TAG, "( INativeWallpaperEngine ): onSurfaceDestroyed" ); playheadTime = mediaPlayer.getCurrentPosition(); mediaPlayer.reset(); mediaPlayer.release(); } } } 

Sólo para pensar fuera de la caja, ¿es posible tomar un reproductor de vídeo de trabajo y re-padre en una ventana de java en Android? No lo he hecho en Linux o Android, pero bajo Windows es posible obtener el identificador de ventana de una aplicación en ejecución y convertirlo en un elemento secundario de un marco Java, con el resultado de que la ventana de la otra aplicación se parece a su parte de Java solicitud.

He intentado la solución Justin Buser y no funciona (probado en un dispositivo API 16), también han encontrado un código similar en https://github.com/thorikawa/AndroidExample/tree/master/MovieLiveWallpaper/ ; Tampoco funciona. La única solución parece ser utilizar FFMPEG con NDK. Por ejemplo: https://github.com/frankandrobot

  • Reproducción de vídeo cuando la actividad está oculta
  • Video en línea no se reproduce
  • Streaming de vídeos de Youtube
  • Android: ¿Cómo volver a la actividad anterior cuando se detiene el video?
  • Tamaño máximo de vídeo se puede agregar en la carpeta sin procesar android compatible?
  • Cómo jugar rtsp live stream desde android? (Rtsp: // someserver: port / live / 001204A006F5.stream)
  • Edición de marcos VideoView de android
  • Cómo jugar video .mp4 en videoview en android?
  • Android VideoView, reproducción perfecta durante el cambio de orientación
  • El video no se detiene en el fragmento ViewPager
  • Transmisión de video en vivo entre dos teléfonos Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.