Según otras preguntas android-video-as-a-live-wallpaper, ¿la única forma de reproducir un video en un fondo de pantalla en vivo es decodificarlo usted mismo?VideoView en un fondo de pantalla en vivo?
Respuesta
La respuesta breve es sí. La respuesta larga es http://ikaruga2.wordpress.com/2011/06/15/video-live-wallpaper-part-1/
Solo para pensar fuera de la caja, ¿es posible tomar un reproductor de video en funcionamiento y volver a protegerlo en una ventana de Java en Android? No he hecho esto en Linux o Android, pero en Windows es posible obtener el identificador de ventana de una aplicación en ejecución y convertirla en un elemento secundario de un marco Java, con el resultado de que la ventana de la otra aplicación parece ser parte de su Java solicitud.
realmente no sé ... –
Simplemente use MediaPlayer en lugar de VideoView y use MediaPlayer.setSurface en lugar de MediaPlayer.setDisplay. Si usa setDisplay, MediaPlayer intenta decirle al SurfaceHolder que mantenga la pantalla activada para LiveWallpapers y arrojará un error.
utilizo WebM de video/vpx8 pero esto debe trabajar con soportes lo MediaPlayer (sólo hay que poner el archivo de vídeo en res/prima)
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();
}
}
}
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 usar FFMPEG con NDK. por ejemplo: https://github.com/frankandrobot
- 1. Fondo de pantalla en vivo - "Establecer fondo de pantalla" - Necesito evento para borrar la memoria
- 2. Fondo de pantalla en vivo Efecto de ondulación del agua
- 3. Android - recorte de fondo de pantalla en vivo
- 4. video de Android como fondo de pantalla en vivo
- 5. Configuración del fondo de pantalla en vivo programáticamente
- 6. Mantener MediaController en la pantalla en VideoView
- 7. Desplazamiento de efecto paralaje de fondo de fondo de pantalla en vivo
- 8. ¿Cómo coloco un adview de AdMob en la pantalla de configuración para un fondo de pantalla en vivo?
- 9. Cambios en VideoView, pantalla completa y orientación - Android
- 10. Grabar video de VideoView
- 11. VideoView: Cómo evitar el flash negro a pantalla completa
- 12. Fondo de pantalla android en 3D: ¿qué motor usar?
- 13. Cómo obtener la resolución de pantalla del navegador en vivo
- 14. Redimensionar VideoView
- 15. seekTo en VideoView
- 16. Obtener fondo de pantalla actual
- 17. Fondo de pantalla/dimensiones de fondo de Android
- 18. Es curioso saber el truco para los fondos de pantalla en vivo en la pantalla de bloqueo en el iPhone
- 19. Configuración de fondo de pantalla de iPhone (fondo de pantalla bloqueada) programáticamente?
- 20. Integración de un archivo de video en la aplicación de Android como fondo de la aplicación
- 21. Audio de fondo - Imagen en la pantalla de bloqueo
- 22. de pantalla en vivo Android onOffsetsChanged xPixelOffset no parece devolver el pixel verdadero compensado
- 23. RTSP transmisión en vivo en Android
- 24. Cambiar el fondo de pantalla en Linux programáticamente
- 25. Android: múltiples pistas de audio en VideoView?
- 26. VideoView looping videos Replenish
- 27. Establecer fondo de pantalla de inicio
- 28. JWPlayer para pantalla completa Video de fondo
- 29. Retraso de VideoView RTSP
- 30. Pantalla GNU - Crear pantalla en el comando de ejecución de fondo desde el shell o script
gracias, me di cuenta y he creado el tutorial de ikaruga2. El punto es que el tutorial, que en realidad es muy bueno, deja algunos problemas abiertos, uno de ellos es el audio ... ¿LISA –
también necesita audio? Eso es todo un desafío. Lea la documentación (es un poco inestable en el audio que conozco) y puede hacerse una idea. Tiene que pensar que, por ejemplo, el audio también puede ser utilizado por otros recursos y que es una tarea bastante compleja administrarlo. Buena suerte y espero que tengas éxito. P.S. Supongo que sabes que esta va a ser una aplicación que consume mucha batería, ¿verdad? – MayTheSchwartzBeWithYou
sí, es un desafío ... es por eso que estoy buscando un enfoque alternativo. ¡Gracias de cualquier manera! LISA –