2016-04-12 9 views
1

Ich arbeite an einer App und YouTube.com ist in ein WebView eingebettet. Videos können nicht abgespielt werden, wenn ich auf einen klicke (der Ladezustand ist für immer). Daher versuche ich VideoView oder YouTubePlayerFragment zu verwenden, um Videos abzuspielen, wenn der Nutzer auf den Video Play-Button klickt. Meine Frage ist: Gibt es Möglichkeiten zu erkennen, dass der Benutzer auf Play-Taste geklickt hat?Android: Wie erkennt man, dass ein Video in WebView abgespielt wird?

Ich habe unter Listener auf WebView hinzugefügt, aber die hr ist nicht ausreichend, um zu sagen, verwenden Klicks Play-Taste.

webView.setOnTouchListener(new View.OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      WebView.HitTestResult hr = ((WebView)v).getHitTestResult(); 

      return false; 
     } 
    }); 
+0

Haben Sie in letzter Zeit eine Lösung gefunden>? – WideFide

+0

@WideFide, ich kenne die Ursache nicht, aber es stellt sich heraus, dass die Youtube-Ansicht nicht in der Webansicht abgespielt werden kann, weil ich android: layerType = "software" für die Webansicht im Layout eingestellt habe. Nachdem ich das aus dem Layout entfernt habe, können Videos abgespielt und pausiert werden. – Huigege

+0

überprüfen Sie dies bitte: [meine Antwort] (https://stackoverflow.com/questions/10811748/html5-in-a-webview-detect-when-video-is-started/44397791#44397791) – saed

Antwort

-1

Nach einer Untersuchung, verwende ich die Lösung in anderen Beiträgen zu finden: WebView link click open default browser und Support for other protocols in Android webview

webView.setWebViewClient(new WebViewClient() { 
    ... 
    @Override 
    public void onPageFinished(WebView view, String url) { 
     String string = "YouTube URL regular expression"; 
     if (url.toLowerCase().matches(string)) { 
      launchInBrowserOrYouTubeApp(url); 
     } 
    } 
    ... 
} 

Es gibt immer noch ein Problem für diese Lösung. Wenn ich zum ersten Mal auf Videos klicke, wird diese Methode ausgelöst und die URL ist "www.youtube.com" (die URL ist "www.youtube.com/watch?v=ajsdfhjh", wenn ich zum zweiten Mal auf Videos klicke oder mehr), was bei der Initialisierung des Webview exakt gleich ist. Ich kann also nicht sagen, ob es ein Benutzer ist, der auf ein Video klickt oder ob es die Initialisierung der Webansicht ist.

Verwandte Themen