2016-06-22 41 views
0

MXビデオプレーヤーとVLCでURLをストリーミングします。 URLがcomxで終わると、MX Video Playerは作業をうまく処理しますが、covlcで終了するとエラーになります。エラーは次のとおりです。シンボルメソッドstartActivityForResult(Intent、int)を見つけることができません

はここで記号法startActivityForResult(テント、int型)

を見つけることができないクラスです。

public class MyAppWebViewClient extends WebViewClient { 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     String str=new String(url); 
     if(str.endsWith("comx")){ 
      Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 
      Uri videoUri = Uri.parse(url.replace("?comx", "")); 
      intent.setClassName("com.mxtech.videoplayer.ad","com.mxtech.videoplayer.ad.ActivityScreen"); 
      intent.setDataAndType(videoUri, "application/x-mpegURL"); 
      intent.putExtra("secure_uri", true); 
      intent.putExtra("title", "Kung Fury"); 
      intent.setPackage("com.mxtech.videoplayer.ad"); 
      view.getContext().startActivity(intent); 
      //view.goBack(); 
      return true; 
     } 
     else { 
      if(str.endsWith("covlc")){ 
       Uri uri = Uri.parse(url.replace("?covlc", "")); 
       int vlcRequestCode = 42; 
       Intent vlcIntent = new Intent(Intent.ACTION_VIEW); 
       vlcIntent.setComponent(new ComponentName("org.videolan.vlc", "org.videolan.vlc.gui.video.VideoPlayerActivity")); 
       vlcIntent.setDataAndType(uri, "video/*"); 
       vlcIntent.putExtra("title", "Kung Fury"); 
       vlcIntent.putExtra("from_start", false); 
       vlcIntent.putExtra("subtitles_location", "/sdcard/Movies/Fifty-Fifty.srt"); 
       view.getContext().startActivityForResult(vlcIntent, vlcRequestCode); 
       return true; 
      } 
      else { 
        //Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 
        //view.getContext().startActivity(intent); 
        return false; 
      } 
     } 

    } 
} 
+1

'startActivityForResult'は' Activity'クラスのメソッドであり、 'Context'ではありません。 APIのドキュメントを確認する –

答えて

-1

startActivityForResult()Activity、ないContext上の方法です。 おそらくContextgetContext()によって、あなたがそれをキャストして呼び出すことができますので、Activityで返さstartActivityForResult()

((Activity)view.getContext()).startActivityForResult(vlcIntent, vlcRequestCode); 

より直接的に(例えば、コンストラクタのパラメータ)MyAppWebViewClientActivityを渡し、それを使用する方が安全だろうそうですね。

関連する問題