Register tutorial 5 as a media player, so other applications (including browsers...
authorXavi Artigas <xartigas@fluendo.com>
Mon, 5 Nov 2012 17:41:49 +0000 (18:41 +0100)
committerXavi Artigas <xartigas@fluendo.com>
Mon, 5 Nov 2012 17:41:49 +0000 (18:41 +0100)
gst-sdk/tutorials/android-tutorial-5/AndroidManifest.xml
gst-sdk/tutorials/android-tutorial-5/src/com/gst_sdk_tutorials/tutorial_5/Tutorial5.java

index fb57547..11b7f39 100755 (executable)
         <activity
             android:name=".Tutorial5"
             android:label="@string/app_name" >
+
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
 
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
+
+            <!-- Local files whose type is known to Android -->
+            <intent-filter>
+                <action android:name="android.intent.action.VIEW" />
+
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.BROWSABLE" />
+
+                <data android:mimeType="audio/*" />
+                <data android:mimeType="video/*" />
+                <data android:mimeType="image/*" />
+            </intent-filter>
+
+            <!-- Links from the browser. The list of extensions and supported
+                 protocols can certainly be extended. -->
+            <intent-filter>
+                <action android:name="android.intent.action.VIEW" />
+
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.BROWSABLE" />
+
+                <data android:scheme="http" />
+                <data android:pathPattern=".*\\.avi" />
+                <data android:pathPattern=".*\\.AVI" />
+                <data android:pathPattern=".*\\.mkv" />
+                <data android:pathPattern=".*\\.MKV" />
+                <data android:pathPattern=".*\\.webm" />
+                <data android:pathPattern=".*\\.WEBM" />
+                <data android:pathPattern=".*\\.ogv" />
+                <data android:pathPattern=".*\\.OGV" />
+                <data android:pathPattern=".*\\.mp4" />
+                <data android:pathPattern=".*\\.MP4" />
+                <data android:pathPattern=".*\\.qt" />
+                <data android:pathPattern=".*\\.QT" />
+            </intent-filter>
         </activity>
         <activity
             android:name="com.lamerman.FileDialog"
index a590b4b..621e246 100644 (file)
@@ -118,7 +118,20 @@ public class Tutorial5 extends Activity implements SurfaceHolder.Callback, OnSee
         } else {
             is_playing_desired = false;
             position = duration = 0;
-            mediaUri = defaultMediaUri;
+            Intent intent = getIntent();
+            android.net.Uri uri = intent.getData();
+            if (uri == null)
+                mediaUri = defaultMediaUri;
+            else {
+                Log.i ("GStreamer", "Received URI: " + uri);
+                if (uri.getScheme().equals("content")) {
+                    android.database.Cursor cursor = getContentResolver().query(uri, null, null, null, null);
+                    cursor.moveToFirst();
+                    mediaUri = "file://" + cursor.getString(cursor.getColumnIndex(android.provider.MediaStore.Video.Media.DATA));
+                    cursor.close();
+                } else
+                    mediaUri = uri.toString();
+            }
             Log.i ("GStreamer", "Activity created with no saved state:");
         }
         is_local_media = false;