最近开发了一个视频桌面类的App,期间遇到了一些问题,现在做一个总结,记录一下自己的分析过程。也希望能够给遇到相关问题的人带来一些收获吧。
1.视频壁纸的实现
在网上搜索一下Android视频桌面的实现,很顺利的完成了一个应用,主要用到的类有两个:
WallpaperService
这是Android系统提供的一个用于实现壁纸服务的抽象类,它的唯一目的就是根据需要生成一个Engine的实例。主要复写如下方法即可,该方法返回一个Engine类:
@Override
public Engine onCreateEngine() {
return new Engine();
}
WallpaperService.Engine
这个类是WallpaperService的一个内部类,WallpaperService要返回的Engine就是它。这个Engine是壁纸的实际实现。这个Engine会提供一个对应的SurfaceHolder,预览视频时MediaPlayer可以通过调用mPlayer.setSurface(surface);将Engine提供的SurfaceHolder.getSurface()设置进去。
主要复写以下几个方法:
public void onCreate(SurfaceHolder surfaceHolder) {
}
public void onDestroy() {
}
public void onVisibilityChanged(boolean visible) {
}
public void onSurfaceCreated(SurfaceHolder holder) {
}
public void onSurfaceDestroyed(Su