Yerel videolarımı (ham klasör) Intent.ActionView kullanarak çalıştırmaya çalışıyorum. Niyet yarattığımda ve bir veri ve tip belirledikten sonra aktiviteyi başlattığımda bir hata alıyorum. Lütfen aşağıdaki kod & hataya bakın.Neden Intent.ActionView bir MP4 dosyasıyla bir hata atıyor
Dosya düşüncesine ulaşmak için bir sürü farklı yol denedim belki de bulunamadı, ancak sorun olduğunu düşünmüyorum. Farklı video formatlarını denedim ama aynı zamanda problem olduğunu da düşünmüyorum.
Hatalı çalışacak SetDataAndType içinde bir MP4 için bir URL kullanırsanız. Belki bu bir izin hatası mı? Bu noktada gerçekten hiçbir fikrim yok. Umarım birileri buraya girdiğim problemi açıklayabilir.
Kodu:
// Create the intent and push the mp4 to it, lets run a video!
Intent videoIntent = new Intent (Intent.ActionView);
// Video is MP4 format
videoIntent.SetDataAndType (Uri.Parse ("android.resource://" + PackageName + "/raw/bunny"), "video/*");
// Crash here, Error: Android.Content.ActivityNotFoundExeception
StartActivity (videoIntent);
Hata:
Android.Content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=android.resource://com.test.videotest/raw/bunny typ=video/* }
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() [0x0000c] in /Users/builder/data/lanes/3053/a94a03b5/source/mono/external/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs:143
at Android.Runtime.JNIEnv.CallNonvirtualVoidMethod (IntPtr jobject, IntPtr jclass, IntPtr jmethod, Android.Runtime.JValue* parms) [0x00084] in /Users/builder/data/lanes/3053/a94a03b5/source/monodroid/src/Mono.Android/src/Runtime/JNIEnv.g.cs:1029
at Android.Content.ContextWrapper.StartActivity (Android.Content.Intent intent) [0x00070] in /Users/builder/data/lanes/3053/a94a03b5/source/monodroid/src/Mono.Android/platforms/android-19/src/generated/Android.Content.ContextWrapper.cs:3238
at VideoTest.MainActivity.<OnCreate>m__0 (System.Object , System.EventArgs) [0x00034] in /Users/alex/Projects/VideoTest/VideoTest/MainActivity.cs:33
at Android.Views.View+IOnClickListenerImplementor.OnClick (Android.Views.View v) [0x0000d] in /Users/builder/data/lanes/3053/a94a03b5/source/monodroid/src/Mono.Android/platforms/android-19/src/generated/Android.Views.View.cs:1780
at Android.Views.View+IOnClickListenerInvoker.n_OnClick_Landroid_view_View_ (IntPtr jnienv, IntPtr native__this, IntPtr native_v) [0x00011] in /Users/builder/data/lanes/3053/a94a03b5/source/monodroid/src/Mono.Android/platforms/android-19/src/generated/Android.Views.View.cs:1745
at at (wrapper dynamic-method) System.Object:123eb72a-af75-42a8-b3aa-717e415176e4 (intptr,intptr,intptr)
at --- End of managed exception stack trace ---
at android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=android.resource://com.test.videotest/raw/bunny typ=video/* }
at at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1798)
at at android.app.Instrumentation.execStartActivity(Instrumentation.java:1512)
at at android.app.Activity.startActivityForResult(Activity.java:3930)
at at android.app.Activity.startActivityForResult(Activity.java:3890)
at at android.app.Activity.startActivity(Activity.java:4213)
at at android.app.Activity.startActivity(Activity.java:4181)
at at mono.android.view.View_OnClickListenerImplementor.n_onClick(Native Method)
at at mono.android.view.View_OnClickListenerImplementor.onClick(View_OnClickListenerImplementor.java:29)
at at android.view.View.performClick(View.java:5204)
at at android.view.View$PerformClick.run(View.java:21155)
at at android.os.Handler.handleCallback(Handler.java:739)
at at android.os.Handler.dispatchMessage(Handler.java:95)
at at android.os.Looper.loop(Looper.java:148)
at at android.app.ActivityThread.main(ActivityThread.java:5422)
at at java.lang.reflect.Method.invoke(Native Method)
at at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Not:
- Crea:
Kolayca aşağıdaki kullanarak kendiniz bu deneyebilirsiniz a yeni bir Xamarin Android Uygulaması
- Yukarıdaki kodu tuşa tıklayarak tıklayın (proje ile önceden yapılmış)
- "Kaynaklar" içinde bir ham klasör oluşturun ve içine herhangi bir MP4 dosyası yerleştirin (onu tavla veya yeniden adlandırın)
SetDataAndType
) - yılında simülatörü) bu yüzden Nexus 5X kullanılan işlemek için görünmüyor (bir cihazda uygulamayı çalıştırın
Dahası:
Cihazım sahiptir VLC Player hem de Google Fotoğraflar ins Her ikisi de, MP4 dosyalarını çalabilir. Ve data
'u bir URL'ye (bir MP4 dosyasına bağlantı) değiştirdiğimde ispat olarak bu işe yarayacaktır.
Bu yol, VideoView
kullanarak aynı yolu test ettiğim gibi bulunamayan bir sorun değildir ve iyi çalışıyor.
kullanarak nasıl çekeceğidir. Olası yinelemeli [Videolarda varlıklar klasöründen nasıl oynanır raw folder?] (http://stackoverflow.com/questions/3028717/how-to-play-videos-in-android-from-assets-folder-or-raw-folder) – Jason
@Jason İlgisizim Korkarım . Korkarım bunun bir şeyden çok bir Xamarin problemi. VideoView olarak diğer yöntemleri kullandığım takdirde dosya bulunuyor. – Ruddy