Android 视频多媒体(MediaPlayer)视频播放依赖与SurfaceHolder,而SurfaceHolder只存在于SurfaceView中。
因此,开发视频桌面首先继承WallpaperService,
public class DesktopService extends WallpaperService {
@Override
public Engine onCreateEngine() {
return null;
}
}
可以看到这里有个Engine类,重点就是在这里实现
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiclRnblN0LclHdpZXYyd2LcBzNvwVZ2x2bzNXak9CX90TQNNkRrFlQKBTSvwFbslmZvwFMwQzLcVmepNHdu9mZvwFVywUNMZTY18CX052bm9CX9EERNJTVE5EMNpXTmZEWjZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39jN2kTN1UzMxEDOycDM3EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
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.csdn.net/t12x3456/article/details/7857741
https://github.com/songixan/Wallpaper