diff options
3 files changed, 23 insertions, 0 deletions
diff --git a/subsonic-android/res/menu/select_video_context.xml b/subsonic-android/res/menu/select_video_context.xml index ed04b6ff..c14becad 100644 --- a/subsonic-android/res/menu/select_video_context.xml +++ b/subsonic-android/res/menu/select_video_context.xml @@ -3,6 +3,10 @@ <item android:id="@+id/song_menu_play_external" android:title="@string/common.play_external"/> + + <item + android:id="@+id/song_menu_stream_external" + android:title="@string/common.stream_external"/> <item android:id="@+id/song_menu_webview" diff --git a/subsonic-android/res/values/strings.xml b/subsonic-android/res/values/strings.xml index 6ada14a8..d814651d 100644 --- a/subsonic-android/res/values/strings.xml +++ b/subsonic-android/res/values/strings.xml @@ -19,6 +19,7 @@ <string name="common.comment">Comment</string>
<string name="common.webview">Play Web View (Flash)</string>
<string name="common.play_external">Play External Player</string>
+ <string name="common.stream_external">Stream External Player</string>
<string name="button_bar.home">Home</string>
<string name="button_bar.browse">Library</string>
@@ -139,6 +140,7 @@ <string name="download.start_timer">Start Timer</string>
<string name="download.stop_timer">Stop Timer</string>
<string name="download.need_download">Video needs to be downloaded first</string>
+ <string name="download.no_streaming_player">No player can play this stream</string>
<string name="starring_content_starred">Starred \"%s\"</string>
<string name="starring_content_unstarred">Unstarred \"%s\"</string>
diff --git a/subsonic-android/src/github/daneren2005/dsub/activity/SelectAlbumActivity.java b/subsonic-android/src/github/daneren2005/dsub/activity/SelectAlbumActivity.java index 891c2edd..a8f2e24c 100644 --- a/subsonic-android/src/github/daneren2005/dsub/activity/SelectAlbumActivity.java +++ b/subsonic-android/src/github/daneren2005/dsub/activity/SelectAlbumActivity.java @@ -22,6 +22,8 @@ import github.daneren2005.dsub.view.EntryAdapter; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; +import android.content.pm.PackageManager; +import android.content.pm.ResolveInfo; import android.net.Uri; import android.os.Bundle; import android.util.Log; @@ -311,6 +313,9 @@ public class SelectAlbumActivity extends SubsonicTabActivity { case R.id.song_menu_play_external: playExternalPlayer(entry); break; + case R.id.song_menu_stream_external: + streamExternalPlayer(entry); + break; case R.id.song_menu_remove_playlist: String playlistId = getIntent().getStringExtra(Constants.INTENT_EXTRA_NAME_PLAYLIST_ID); String playlistName = getIntent().getStringExtra(Constants.INTENT_EXTRA_NAME_PLAYLIST_NAME); @@ -544,6 +549,18 @@ public class SelectAlbumActivity extends SubsonicTabActivity { startActivity(intent); } } + private void streamExternalPlayer(MusicDirectory.Entry entry) { + Intent intent = new Intent(Intent.ACTION_VIEW); + intent.setDataAndType(Uri.parse(MusicServiceFactory.getMusicService(this).getVideoStreamUrl(this, entry.getId())), "video/*"); + + List<ResolveInfo> intents = getPackageManager() + .queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY); + if(intents != null && intents.size() > 0) { + startActivity(intent); + } else { + Util.toast(this, R.string.download_no_streaming_player); + } + } private void checkLicenseAndTrialPeriod(Runnable onValid) { if (licenseValid) { |