지금 WallpaperService를 이용해 동영상 라이브배경화면을 만들고 있습니다.

MediaPlayer로 동영상을 플레이 시키는데 갤S단말만 화면이 안보이네요;(소리만 나옴)


아래는 소스이며

VideoSurfaceHolder 클래스는

movie.setDisplay(holder);와 같이 사용하니까 에러가 나서 구글검색으로 집어넣은 코드입니다.


SurfaceHolder 를 제가 잘못 사용해서 그런걸까요?

경험 있으신 분들 조언 부탁드릴게요.


@Override

public void onSurfaceChanged(SurfaceHolder holder, int format, int width, int height) {

super.onSurfaceChanged(holder, format, width, height);

movie = MediaPlayer.create(WallPaper2Activity.this, R.raw.sample_movie);

drawMovie();

        }


private void drawMovie() {

final SurfaceHolder holder = getSurfaceHolder();

movie.setDisplay(new VideoSurfaceHolder(holder));

movie.setScreenOnWhilePlaying(true);

movie.setLooping(true); movie.start();

}


public class VideoSurfaceHolder implements SurfaceHolder {

private SurfaceHolder surfaceHolder;


public VideoSurfaceHolder(SurfaceHolder holder) {

surfaceHolder = holder;

}


@Override

public void addCallback(Callback callback) {

surfaceHolder.addCallback(callback);

}


@Override

public Surface getSurface() {

return surfaceHolder.getSurface();

}


@Override

public Rect getSurfaceFrame() {

return surfaceHolder.getSurfaceFrame();

}


@Override

public boolean isCreating() {

return surfaceHolder.isCreating();

}


@Override

public Canvas lockCanvas() {

return surfaceHolder.lockCanvas();

}


@Override

public Canvas lockCanvas(Rect dirty) {

return surfaceHolder.lockCanvas(dirty);

}


@Override

public void removeCallback(Callback callback) {

surfaceHolder.removeCallback(callback);

}


@Override

public void setFixedSize(int width, int height) {

surfaceHolder.setFixedSize(width, height);

}


@Override

public void setFormat(int format) {

surfaceHolder.setFormat(format);

}


@Override

public void setKeepScreenOn(boolean screenOn) {

//Do nothing here, this will prevent an exception

}


@Override

public void setSizeFromLayout() {

surfaceHolder.setSizeFromLayout();

}


@SuppressWarnings("deprecation")

@Override

public void setType(int type) {

surfaceHolder.setType(type);

}


@Override

public void unlockCanvasAndPost(Canvas canvas) {

surfaceHolder.unlockCanvasAndPost(canvas);

}