Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/news-android.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Development <david-dev@live.de>2014-07-04 13:26:39 +0400
committerDavid Development <david-dev@live.de>2014-07-04 13:26:39 +0400
commit99a5b5dd417f03b749a5dedb5ad3f52403491a13 (patch)
tree9acc3399db3552b5c2c4641d7896ca330395cf6c /News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services
parent63d2c5700f9451722a244ac9969de766a60be6e6 (diff)
Update podcast support
Diffstat (limited to 'News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services')
-rw-r--r--News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/PodcastPlaybackService.java (renamed from News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/AudioPodcastService.java)87
1 files changed, 67 insertions, 20 deletions
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/AudioPodcastService.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/PodcastPlaybackService.java
index 9fe56b8a..7a656ba2 100644
--- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/AudioPodcastService.java
+++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/services/PodcastPlaybackService.java
@@ -5,17 +5,19 @@ import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Handler;
import android.os.IBinder;
+import android.view.SurfaceHolder;
import java.io.IOException;
import de.greenrobot.event.EventBus;
import de.luhmer.owncloudnewsreader.events.podcast.OpenAudioPodcastEvent;
+import de.luhmer.owncloudnewsreader.events.podcast.RegisterVideoOutput;
import de.luhmer.owncloudnewsreader.events.podcast.TogglePlayerStateEvent;
import de.luhmer.owncloudnewsreader.events.podcast.UpdatePodcastStatusEvent;
import de.luhmer.owncloudnewsreader.events.podcast.WindPodcast;
import de.luhmer.owncloudnewsreader.view.PodcastNotification;
-public class AudioPodcastService extends Service {
+public class PodcastPlaybackService extends Service {
PodcastNotification podcastNotification;
@@ -26,17 +28,27 @@ public class AudioPodcastService extends Service {
super.onCreate();
}
- public AudioPodcastService() {
+ public PodcastPlaybackService() {
mediaPlayer = new MediaPlayer();
mHandler = new Handler();
eventBus = EventBus.getDefault();
eventBus.register(this);
+
+
+ mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
+ @Override
+ public void onPrepared(MediaPlayer mediaPlayer) {
+ play();
+ isPreparing = false;
+ }
+ });
+
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
- mHandler.removeCallbacks(mUpdateTimeTask);
+ pause();//Send the over signal
}
});
@@ -44,6 +56,7 @@ public class AudioPodcastService extends Service {
//openFile("/sdcard/Music/#Musik/Finest Tunes/Netsky - Running Low (Ft. Beth Ditto).mp3");
}
+
@Override
public IBinder onBind(Intent intent) {
// TODO: Return the communication channel to the service.
@@ -73,22 +86,6 @@ public class AudioPodcastService extends Service {
mediaPlayer.reset();
mediaPlayer.setDataSource(pathToFile);
mediaPlayer.prepareAsync();
-
- mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
- @Override
- public void onPrepared(MediaPlayer mediaPlayer) {
- play();
- isPreparing = false;
- }
- });
-
- mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
- @Override
- public void onCompletion(MediaPlayer mediaPlayer) {
- pause();//Send the over signal
- }
- });
-
} catch (IOException e) {
e.printStackTrace();
isPreparing = false;
@@ -126,6 +123,13 @@ public class AudioPodcastService extends Service {
openFile(event.pathToFile, event.mediaTitle);
}
+ public void onEvent(RegisterVideoOutput videoOutput) {
+ if(mediaPlayer != null) {
+ //getHolder().addCallback(videoOutput);
+ videoOutput.surfaceView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
+ }
+ }
+
@@ -137,7 +141,9 @@ public class AudioPodcastService extends Service {
}
public void pause() {
- mediaPlayer.pause();
+ if(mediaPlayer.isPlaying())
+ mediaPlayer.pause();
+
mHandler.removeCallbacks(mUpdateTimeTask);
sendMediaStatus();
@@ -167,4 +173,45 @@ public class AudioPodcastService extends Service {
eventBus.post(audioPodcastEvent);
}
+
+
+
+ SurfaceHolder.Callback mSHCallback = new SurfaceHolder.Callback()
+ {
+ public void surfaceChanged(SurfaceHolder holder, int format,
+ int w, int h)
+ {
+ mSurfaceWidth = w;
+ mSurfaceHeight = h;
+ if (mIsPrepared && mVideoWidth == w && mVideoHeight == h) {
+ if (mSeekWhenPrepared != 0) {
+ mMediaPlayer.seekTo(mSeekWhenPrepared);
+ }
+ mMediaPlayer.start();
+ if (mMediaController != null) {
+ mMediaController.show();
+ }
+ }
+ }
+
+ public void surfaceCreated(SurfaceHolder holder)
+ {
+ mSurfaceHolder = holder;
+ openVideo();
+ }
+
+ public void surfaceDestroyed(SurfaceHolder holder)
+ {
+ // after we return from this we can't use the surface any more
+ mSurfaceHolder = null;
+ if (mMediaController != null) mMediaController.hide();
+ if (mMediaPlayer != null) {
+ mMediaPlayer.reset();
+ mMediaPlayer.release();
+ mMediaPlayer = null;
+ }
+ }
+ };
+
+
}