2016-08-01 7 views
0

Ich habe ein paar Probleme mit API von Vimeo mit Javascript zu arbeiten.Webview mit Vimeo Frogaloop API

Diese Anwendung funktioniert perfekt auf Android 5.0, aber es funktioniert nicht in Android 4.4 Android TV Box.

Meine App besteht aus zwei Teilen. Code für Android App und Javascript.

Ich habe diesen Code mit javascript:

var player; 
var paused=false; 
var speedSeek=240; 
var current=0; 
var total=0; 
var valor=0; 

$(function() { 
var iframe = $('#player1')[0]; //player1 
player = $f(iframe); 
var status = $('.status'); 


player.addEvent('ready', function() { 
    //status.text('ready'); 

    player.addEvent('pause', onPause); 
    player.addEvent('finish', onFinish); 
    player.addEvent('playProgress',onPlayProgress); 
    player.addEvent('play',onPlay); 
    player.addEvent('seek',onSeek); 
}); 


function onPlay() { 
window.myjava.returnValue("play"); 
} 


function onPause() { 
    window.myjava.returnValue("pause"); 
} 

function onFinish() { 
window.myjava.returnValue("finish"); 
} 

function onSeek() { 
// window.myjava.returnValue("seekeed"); 
} 

function onPlayProgress(data) { 

    current=data.seconds; 
    total=data.duration;        


    if(data.seconds>=data.duration)            
window.myjava.returnValue("finish"); 
} 

}); 



function pause() { 


if(paused==false) { 
    player.api("pause"); 
    paused=true; 
} else { 
    player.api("play"); 
    paused=false; 
} 

} 

function forwarddd() { 
player.api('seekTo',current+25); 
} 

ich mit einer Javascript-Schnittstelle arbeitete, genannt 'Myjava'. Von hier sende i-Nachrichten an mein Android-App, zum Beispiel: Stop, Play, Finish .....

Und das ist ein Teil des Codes für Android App:

public void loadWebView(String time) { 
    webview.loadUrl("about:blank"); 

    if(videos!=null && videos.size()>0) 
videourl = videos.get(numvideo).getURL() + "/?autoplay=1&byline=0&portrait=0&api=1&player_id=player1"; 



    String html = "<html><head><style>.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; height: auto; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }</style>"; 
    html = html + "<script src=\"http://code.jquery.com/jquery-1.11.0.min.js\"></script></head>"; 
    html = html + "<script src='https://f.vimeocdn.com/js/froogaloop2.min.js'></script><script src='http://www.sourcenet.es/main.js'></script>"; 

    html = html + "<body style='margin: 0; padding: 0'><div class='embed-container'><iframe id='player1' src='" + videourl + "' width='400' id='player1' height='500' frameborder='0' webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe></div></body></html>"; 

    webview.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); 
    webview.getSettings().setJavaScriptEnabled(true); 
    webview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 
    webview.getSettings().setMediaPlaybackRequiresUserGesture(false); 
    webview.getSettings().setLoadWithOverviewMode(true); 
    webview.getSettings().setDomStorageEnabled(true); 
    webview.getSettings().setUserAgentString("Desktop"); 
    webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); 
    webview.setWebChromeClient(chromeClient); 
    webview.addJavascriptInterface(new MyJS(), "myjava"); 
    webview.loadData(html, "text/html", "UTF-8"); 
    webview.setWebContentsDebuggingEnabled(true); 

} 

@Override 
public boolean dispatchKeyEvent(KeyEvent event) { 


    if(event.getAction() == KeyEvent.ACTION_DOWN) {  

     switch(event.getKeyCode()) { 

      case 22: 
       webview.loadUrl("javascript:forwarddd()"); 
      break; 


       case 23:             
        webview.loadUrl("javascript:pause()");    //Pausamos 
       break; 

       case 88:      //Change video : back 

        if(numvideo>0) { 
         numvideo--; 
         loadWebView(); 
        } 
       break; 


       case 87:      //Change video 

        if(numvideo<videos.size()-1) { 
         numvideo++; 
         loadWebView(); 
        } 

       break; 



      default: 
       return super.dispatchKeyEvent(event); 
     } 

    } 
    } 


    return true; 
} 

Das Problem ist in: webview.loadUrl ("javascript: forward()"); Geht nur ein paar Sekunden vor, nachdem Sie nicht gehorcht haben. Scheint so zu sein, dass das Video ein Limit hat, nicht mehr als 1:20. Wenn ich versuche, 1:20 zu überschreiten, kann ich nicht. Die Methode:

Wird ausgeführt, aber es funktioniert nicht. Ich weiß es nicht, weil das passiert ist.

Das sind einige Meldungen, die Throught logcat mit Android 4.4 über Mediaplayer gezeigt werden, die Nachrichten Thesen sind:

08-02 17:28:22.178 2361-2361/es.packa.nage E/MediaPlayer: msg : { when=-17ms what=3 arg1=5 target=android.media.MediaPlayer$EventHandler } 

das Problem ist in Media Player Vielleicht?

Dies ist nicht mit Android 5.0 in einem Mobiltelefon geschehen, aber in meinem Android-TV-Box mit Android 4.4 funktioniert es nicht.

Kann mir jemand helfen? Grüße.

Antwort

0

Neben logcat zeigt diese Meldung, wenn ich versuchen, sie ..

08-02 23:54:42.038 23805-23879/package.es.name.name W/MediaPlayer: info/warning (702, 0) 
08-02 23:54:42.038 23805-23805/package.es.name.name W/System.err: java.lang.NullPointerException 
08-02 23:54:42.038 23805-23805/package.es.name.name W/System.err:  at  android.media.MediaPlayer$EventHandler.record_logfile(MediaPlayer.java:3226) 
08-02 23:54:42.038 23805-23805/package.es.name.name W/System.err:  at android.media.MediaPlayer$EventHandler.handleMessage(MediaPlayer.java:3466) 
08-02 23:54:42.038 23805-23805/package.es.name.name W/System.err:  at android.os.Handler.dispatchMessage(Handler.java:102) 
08-02 23:54:42.038 23805-23805/package.es.name.name W/System.err:  at android.os.Looper.loop(Looper.java:136) 
08-02 23:54:42.038 23805-23805/package.es.name.name W/System.err:  at android.app.ActivityThread.main(ActivityThread.java:5017) 
08-02 23:54:42.038 23805-23805/package.es.name.name W/System.err:  at java.lang.reflect.Method.invokeNative(Native Method) 
08-02 23:54:42.038 23805-23805/package.es.name.name W/System.err:  at java.lang.reflect.Method.invoke(Method.java:515) 
08-02 23:54:42.038 23805-23805/package.es.name.name W/System.err:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:788) 
08-02 23:54:42.038 23805-23805/package.es.name.name W/System.err:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:604) 
08-02 23:54:42.038 23805-23805/package.es.name.name W/System.err:  at dalvik.system.NativeStart.main(Native Method) 
Verwandte Themen