Android视频作为动态壁纸

use*_*443 7 android live-wallpaper

我想把视频作为动态壁纸.我正在使用媒体播放器.我可以获得SurfaceHolder,我可以将该持有者交给媒体播放器.但它不适合我,它给我以下例外

LogCat异常详细信息

ERROR/AndroidRuntime(302): java.lang.UnsupportedOperationException: Wallpapers do not support keep screen on
Run Code Online (Sandbox Code Playgroud)

如果我不给媒体播放器的持有者它的工作原理,但我只能听到音频.我看到一个应用程序VideoLiveWallpaper,它将视频设置为动态壁纸,所以它可能,我可能会遗漏一些东西.我正在粘贴代码,对此的任何帮助将不胜感激.

代码片段

public void surfaceCreated(SurfaceHolder holder) {
  // TODO Auto-generated method stub

 holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
  mp=MediaPlayer.create(getApplicationContext(), R.raw.sample);
  mp.setDisplay(holder);
  mp.start();
 }
Run Code Online (Sandbox Code Playgroud)

Ran*_*wal 5

代替使用,**mediaPlayer.setDisplay(surfaceHolder)**您可以使用**mediaPlayer.setSurface(surfaceHolder.getSurface())**..

与属性KeepScreenOn不会产生任何类型的冲突。

NJOY .. :)


Geo*_*man 3

我的猜测是,当前流通的视频动态壁纸使用了完全不同的方法:手动解码媒体并逐帧绘制。我不认为这个问题可以用你的简单方法来解决——否则更多的人已经这样做了。

我假设您有此参考资料,但以防万一:http://forum.xda-developers.com/showthread.php ?t=804720 明确提及不同的视频格式使我相信开发人员正在进行自己的解码。 ..祝你好运,乔治