diff options
author | Daniel Oeh <daniel@danielpc.(none)> | 2012-05-30 14:57:11 +0200 |
---|---|---|
committer | Daniel Oeh <daniel@danielpc.(none)> | 2012-05-30 14:57:11 +0200 |
commit | d98fa5746836ed623463e5c6c2cd57276c3f6eab (patch) | |
tree | cacd2e0fcea162dc54b077aa254a85a86d76da49 /src/de/podfetcher/service/PlaybackService.java | |
parent | d92de110dfecb18718aa0e4cc469f1c215dcd6d4 (diff) | |
download | AntennaPod-d98fa5746836ed623463e5c6c2cd57276c3f6eab.zip |
Created Playback Service
Diffstat (limited to 'src/de/podfetcher/service/PlaybackService.java')
-rw-r--r-- | src/de/podfetcher/service/PlaybackService.java | 71 |
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(); + } + }; + +} |