summaryrefslogtreecommitdiff
path: root/src/de/podfetcher/service/PlaybackService.java
diff options
context:
space:
mode:
authordaniel oeh <daniel.oeh@gmail.com>2012-06-27 17:30:54 +0200
committerdaniel oeh <daniel.oeh@gmail.com>2012-06-27 17:30:54 +0200
commit0eded316b37cfd6328d528d1af2ea5e0aa716f35 (patch)
tree5a845a4d9e9ea6438cee95fda4e4d783a9ac2213 /src/de/podfetcher/service/PlaybackService.java
parent2ba8847610e5a30ddadc00e21c624578bb8b1d4d (diff)
downloadAntennaPod-0eded316b37cfd6328d528d1af2ea5e0aa716f35.zip
Implemented landscape layout for videoplayer
Diffstat (limited to 'src/de/podfetcher/service/PlaybackService.java')
-rw-r--r--src/de/podfetcher/service/PlaybackService.java54
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) {