diff options
author | daniel oeh <daniel.oeh@gmail.com> | 2012-06-27 17:30:54 +0200 |
---|---|---|
committer | daniel oeh <daniel.oeh@gmail.com> | 2012-06-27 17:30:54 +0200 |
commit | 0eded316b37cfd6328d528d1af2ea5e0aa716f35 (patch) | |
tree | 5a845a4d9e9ea6438cee95fda4e4d783a9ac2213 /src/de/podfetcher/service | |
parent | 2ba8847610e5a30ddadc00e21c624578bb8b1d4d (diff) | |
download | AntennaPod-0eded316b37cfd6328d528d1af2ea5e0aa716f35.zip |
Implemented landscape layout for videoplayer
Diffstat (limited to 'src/de/podfetcher/service')
-rw-r--r-- | src/de/podfetcher/service/PlaybackService.java | 54 |
1 files changed, 37 insertions, 17 deletions
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) { |