summaryrefslogtreecommitdiff
path: root/src/de/podfetcher/service/PlaybackService.java
diff options
context:
space:
mode:
authorDaniel Oeh <daniel@danielpc.(none)>2012-05-30 14:57:11 +0200
committerDaniel Oeh <daniel@danielpc.(none)>2012-05-30 14:57:11 +0200
commitd98fa5746836ed623463e5c6c2cd57276c3f6eab (patch)
treecacd2e0fcea162dc54b077aa254a85a86d76da49 /src/de/podfetcher/service/PlaybackService.java
parentd92de110dfecb18718aa0e4cc469f1c215dcd6d4 (diff)
downloadAntennaPod-d98fa5746836ed623463e5c6c2cd57276c3f6eab.zip
Created Playback Service
Diffstat (limited to 'src/de/podfetcher/service/PlaybackService.java')
-rw-r--r--src/de/podfetcher/service/PlaybackService.java71
1 files changed, 71 insertions, 0 deletions
diff --git a/src/de/podfetcher/service/PlaybackService.java b/src/de/podfetcher/service/PlaybackService.java
new file mode 100644
index 000000000..a4043f6f4
--- /dev/null
+++ b/src/de/podfetcher/service/PlaybackService.java
@@ -0,0 +1,71 @@
+package de.podfetcher.service;
+
+import java.io.File;
+
+import android.app.Service;
+import android.content.Intent;
+import android.media.MediaPlayer;
+import android.util.Log;
+import android.net.Uri;
+import android.os.IBinder;
+
+import de.podfetcher.feed.FeedMedia;
+import de.podfetcher.feed.Feed;
+import de.podfetcher.feed.FeedManager;
+
+/** Controls the MediaPlayer that plays a FeedMedia-file */
+public class PlaybackService extends Service {
+ /** Logging tag */
+ private static final String TAG = "PlaybackService";
+ /** Contains the id of the FeedMedia object. */
+ public static final String EXTRA_MEDIA_ID = "extra.de.podfetcher.service.mediaId";
+ /** Contains the id of the Feed object of the FeedMedia. */
+ public static final String EXTRA_FEED_ID = "extra.de.podfetcher.service.feedId";
+
+ private MediaPlayer player;
+ private FeedMedia media;
+ private Feed feed;
+ private FeedManager manager;
+
+ @Override
+ public void onCreate() {
+ super.onCreate();
+ Log.d(TAG, "Service created.");
+
+ manager = FeedManager.getInstance();
+ }
+
+ @Override
+ public IBinder onBind(Intent intent) {
+ return null;
+ }
+
+ @Override
+ public int onStartCommand(Intent intent, int flags, int startId) {
+ if (player != null) {
+ player.stop();
+ }
+ long mediaId = intent.getLongExtra(EXTRA_MEDIA_ID, -1);
+ long feedId = intent.getLongExtra(EXTRA_FEED_ID, -1);
+ if (mediaId == -1 || feedId == -1) {
+ Log.e(TAG, "Media ID or Feed ID wasn't provided to the Service.");
+ } else {
+ feed = manager.getFeed(feedId);
+ media = manager.getFeedMedia(mediaId, feed);
+ player = MediaPlayer.create(this, Uri.fromFile(new File(media.getFile_url())));
+ player.setOnPreparedListener(preparedListener);
+ Log.d(TAG, "Preparing to play file");
+ //player.prepareAsync();
+ }
+ return Service.START_NOT_STICKY;
+ }
+
+ private MediaPlayer.OnPreparedListener preparedListener = new MediaPlayer.OnPreparedListener() {
+ @Override
+ public void onPrepared(MediaPlayer mp) {
+ Log.d(TAG, "Resource prepared");
+ mp.start();
+ }
+ };
+
+}