2011-11-28 9 views
5

पर काम नहीं कर मैं एक दूर की मेजबानी की वीडियो फ़ाइल देखने के लिए निम्न कोड है:Intent.ACTION_VIEW कोई वीडियो URL आइस क्रीम सैंडविच

startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse(article.getLink()))); 

जहां getLink() लेख से सम्बंधित वीडियो का URL देता है।

इस दृष्टिकोण ने जिंजरब्रेड तक उपकरणों पर ठीक काम किया है, लेकिन मैं हाल ही में आईसीएस पर ऐप का परीक्षण कर रहा हूं और मुझे कोई समस्या मिली है। आईसीएस ब्राउज़र यूआरएल लोड करना शुरू कर देता है और मैं इसे एनएवी बार में देखता हूं, लेकिन फिर लगभग तुरंत ब्राउज़र बंद हो जाता है और मुझे वापस अपने ऐप की गतिविधि में ले जाया जाता है।

11-28 10:24:44.488: E/SurfaceTexture(116): [com.mypackage.myapp/com.mypackage.myapp.MyVideoActivity] connect: already connected (cur=2, req=2) 
11-28 10:24:44.488: E/ViewRootImpl(25384): IllegalArgumentException locking surface 
11-28 10:24:44.488: E/ViewRootImpl(25384): java.lang.IllegalArgumentException 
11-28 10:24:44.488: E/ViewRootImpl(25384): at android.view.Surface.lockCanvasNative(Native Method) 
11-28 10:24:44.488: E/ViewRootImpl(25384): at android.view.Surface.lockCanvas(Surface.java:76) 
11-28 10:24:44.488: E/ViewRootImpl(25384): at android.view.ViewRootImpl.draw(ViewRootImpl.java:1924) 
11-28 10:24:44.488: E/ViewRootImpl(25384): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1613) 
11-28 10:24:44.488: E/ViewRootImpl(25384): at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2418) 
11-28 10:24:44.488: E/ViewRootImpl(25384): at android.os.Handler.dispatchMessage(Handler.java:99) 
11-28 10:24:44.488: E/ViewRootImpl(25384): at android.os.Looper.loop(Looper.java:137) 
11-28 10:24:44.488: E/ViewRootImpl(25384): at android.app.ActivityThread.main(ActivityThread.java:4340) 
11-28 10:24:44.488: E/ViewRootImpl(25384): at java.lang.reflect.Method.invokeNative(Native Method) 
11-28 10:24:44.488: E/ViewRootImpl(25384): at java.lang.reflect.Method.invoke(Method.java:511) 
11-28 10:24:44.488: E/ViewRootImpl(25384): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
11-28 10:24:44.488: E/ViewRootImpl(25384): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
11-28 10:24:44.488: E/ViewRootImpl(25384): at dalvik.system.NativeStart.main(Native Method) 

किसी और इस व्यवहार/एक फिक्स की पता है देखा है:

मैं जब ऐसा होता है निम्न स्टैक ट्रेस हो रही है?

उत्तर

5

मैं कुछ चीजें करने की कोशिश की और स्पष्ट रूप से आशय काम के भीतर डेटा का डेटा प्रकार की स्थापना पाया।

Intent videoIntent =new Intent(Intent.ACTION_VIEW); 
videoIntent.setDataAndType(Uri.parse(article.getLink()), "video/*"); 
startActivity(videoIntent); 

नोट: मैंने जिंजरब्रेड 2.3.6 में भी इसी तरह की त्रुटि का अनुभव किया।

+0

यह सैमसंग गैलेक्सी टैब 2 पर चल रहा आईसीएस पर काम नहीं करता है। :( –

0

यह नहीं देखा गया है लेकिन ब्राउजर को इसे संभालने के बजाए आसपास के काम को यूट्यूब एप्लिकेशन (यदि यह इंस्टॉल किया गया है) को स्पष्ट रूप से आमंत्रित किया जा सकता है।

@Guy से
/** 
* @param context 
* @param url To display, such as http://www.youtube.com/watch?v=t_c6K1AnxAU 
* @return an Intent to start the YouTube Viewer. If it is not found, will 
*   return a generic video-play intent, and system will display a 
*   chooser to ther user. 
*/ 
public static Intent getYouTubeIntent(Context context, String url) { 
    Intent videoIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 
    final PackageManager pm = context.getPackageManager(); 
    List<ResolveInfo> activityList = pm.queryIntentActivities(videoIntent, 0); 
    for (int i = 0; i < activityList.size(); i++) { 
    ResolveInfo app = activityList.get(i); 
    if (app.activityInfo.name.contains("youtube")) { 
     videoIntent.setClassName(app.activityInfo.packageName, app.activityInfo.name); 
     return videoIntent; 
    } 
    } 
    return videoIntent; 
} 

कोड ->https://stackoverflow.com/a/6674637/31751

+0

धन्यवाद स्कॉट मैं इसे आज किसी बिंदु पर आज़मा दूंगा! –

संबंधित मुद्दे