我有一些使用JavaScript處理vimeo的問題。Webview與Vimeo frogaloop API
此應用程序在Android 5.0上運行完美,但它不適用於Android電視盒中的Android 4.4。
我的應用程序有兩個部分。代碼爲Android應用程序和JavaScript。
我有這樣的代碼使用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);
}
我與JavaScript接口,被稱爲 '米亞瓦' 工作。在這裏,我將消息發送到我的Android應用程序,例如:停止,播放,完成.....
這是一些對Android應用的代碼:
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;
}
的問題是: webview.loadUrl( 「javacript:正向()」);只有在不服從之後提前幾秒鐘。似乎是視頻有限制,不超過1:20 aprox。如果我嘗試超過1:20我不能。方法:
player.api('seekTo',seconds);
被執行但它不起作用。我不知道,因爲發生這種情況。
的是被顯示了Android 4.4的MediaPlayer左右的logcat throught一些消息,這些消息是論文:
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 }
也許這個問題是在媒體播放器?
這並沒有發生在Android 5.0手機,但在我的Android電視盒與Android 4.4它不起作用。
有人可以幫我嗎? 問候。