From 0eded316b37cfd6328d528d1af2ea5e0aa716f35 Mon Sep 17 00:00:00 2001 From: daniel oeh Date: Wed, 27 Jun 2012 17:30:54 +0200 Subject: Implemented landscape layout for videoplayer --- src/de/podfetcher/service/PlaybackService.java | 54 ++++++++++++++++++-------- 1 file changed, 37 insertions(+), 17 deletions(-) (limited to 'src/de/podfetcher/service') diff --git a/src/de/podfetcher/service/PlaybackService.java b/src/de/podfetcher/service/PlaybackService.java index 026ada192..8faf46345 100644 --- a/src/de/podfetcher/service/PlaybackService.java +++ b/src/de/podfetcher/service/PlaybackService.java @@ -188,28 +188,47 @@ public class PlaybackService extends Service { * mediaplayer. */ public void setVideoSurface(SurfaceHolder sh) { + Log.d(TAG, "Setting display"); + player.setDisplay(null); player.setDisplay(sh); - try { - if (shouldStream) { - player.setDataSource(media.getDownload_url()); - setStatus(PlayerStatus.PREPARING); - player.prepareAsync(); - } else { - player.setDataSource(media.getFile_url()); - setStatus(PlayerStatus.PREPARING); - player.prepare(); + if (status == PlayerStatus.STOPPED + || status == PlayerStatus.AWAITING_VIDEO_SURFACE) { + try { + if (shouldStream) { + player.setDataSource(media.getDownload_url()); + setStatus(PlayerStatus.PREPARING); + player.prepareAsync(); + } else { + player.setDataSource(media.getFile_url()); + setStatus(PlayerStatus.PREPARING); + player.prepare(); + } + } catch (IllegalArgumentException e) { + e.printStackTrace(); + } catch (SecurityException e) { + e.printStackTrace(); + } catch (IllegalStateException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); } - } catch (IllegalArgumentException e) { - e.printStackTrace(); - } catch (SecurityException e) { - e.printStackTrace(); - } catch (IllegalStateException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); } } + + /** Called when the surface holder of the mediaplayer has to be changed. */ + public void resetVideoSurface() { + positionSaver.cancel(true); + player.setDisplay(null); + player.reset(); + player.release(); + player = new MediaPlayer(); + player.setOnPreparedListener(preparedListener); + player.setOnCompletionListener(completionListener); + player.setOnSeekCompleteListener(onSeekCompleteListener); + status = PlayerStatus.STOPPED; + setupMediaplayer(); + } /** Called after service has extracted the media it is supposed to play. */ private void setupMediaplayer() { @@ -228,6 +247,7 @@ public class PlaybackService extends Service { } else if (media.getMime_type().startsWith("video")) { playingVideo = true; setStatus(PlayerStatus.AWAITING_VIDEO_SURFACE); + player.setScreenOnWhilePlaying(true); } } catch (IllegalArgumentException e) { -- cgit v1.2.3