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.