在动态壁纸中使用VideoView?

| 像其他问题一样,在动态壁纸中播放视频的唯一方法是自己解码吗?     
已邀请:
只需使用MediaPlayer而不是VideoView并使用MediaPlayer.setSurface而不是MediaPlayer.setDisplay。如果使用setDisplay,则MediaPlayer会尝试告诉SurfaceHolder保持LiveWallpapers不允许的屏幕,并会引发错误。 我使用WebM / vpx8视频,但是它可以与MediaPlayer支持的任何版本一起使用(只需将视频文件放入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();
                    }
        }

}
    
简短的回答是。长答案是http://ikaruga2.wordpress.com/2011/06/15/video-live-wallpaper-part-1/     
只是想跳出框框,是否可以拿一个正常工作的视频播放器,然后在Android的Java窗口下重新对其进行父处理?我没有在Linux或Android中完成此操作,但是在Windows下,可以获取正在运行的应用程序的窗口句柄,并将其设为Java框架的子级,结果另一个应用程序的窗口看起来像它的一部分您的Java应用程序。     
我已经尝试过Justin Buser解决方案,但它不起作用(在API 16设备上测试),还在https://github.com/thorikawa/AndroidExample/tree/master/MovieLiveWallpaper/上找到了类似的代码;它也不起作用。 唯一的解决方案似乎是将FFMPEG与NDK结合使用。例如:https://github.com/frankandrobot     

要回复问题请先登录注册