Android 视频多媒体(MediaPlayer)视频播放依赖与SurfaceHolder,而SurfaceHolder只存在于SurfaceView中。
因此,开发视频桌面首先继承WallpaperService,
public class DesktopService extends WallpaperService { @Override public Engine onCreateEngine() { return null;
}
}
可以看到这里有个Engine类,重点就是在这里实现
Engine可理解为“非平常的Activity”,这个“非平常的Activity”显示在桌面(Lancher)中,也有它完整的声明周期方法
<service android:name="com.zzyd.service.DesktopService" android:permission="android.permission.BIND_WALLPAPER"> <!-- 为实时壁纸配置intent-filter --> <intent-filter> <action android:name="android.service.wallpaper.WallpaperService" /> </intent-filter> <!-- 为实时壁纸配置meta-data --> <meta-data android:name="android.service.wallpaper" android:resource="@xml/livewallpaper" /></service>
这里resource="@xml/xxx" 是因为WallPaperService不能使用常规的layout布局 在res下新建“xml”文件夹,然后新建livewallpaper.xml
<?xml version="1.0" encoding="utf-8"?> <wallpaper xmlns:android="http://schemas.android.com/apk/res/android" android:thumbnail="@mipmap/ic_launcher"></wallpaper>
thumbnail也可以不写,根据我的理解,只是在这里显示一个APP的icon(如有问题,希望大家指正!)
参考:http://blog.youkuaiyun.com/t12x3456/article/details/7857741
https://github.com/songixan/Wallpaper