我想在使用JSNI的GWT中使用phonegap audio api。我無法弄清楚如何編寫JSNI中的方法。在gwt中使用phonegap audio api
想知道是否有人知道任何教程。他們的JavaScript方法真的很簡單。
http://docs.phonegap.com/phonegap_media_media.md.html
我想在使用JSNI的GWT中使用phonegap audio api。我無法弄清楚如何編寫JSNI中的方法。在gwt中使用phonegap audio api
想知道是否有人知道任何教程。他們的JavaScript方法真的很簡單。
http://docs.phonegap.com/phonegap_media_media.md.html
基本上它聽起來像它會是這樣的:
public final class Media extends JavaScriptObject {
protected Media() {}
public static native final Media newInstance(String src, Command command) /*-{
var callback = function() { command.execute(); };
return new Media(src, callback);
}-*/;
public native final void getCurrentPosition(AsyncCallback<String> command) /*-{
var callback = function(position) { command.onSuccess('' + position); };
this.getCurrentPosition(callback);
}-*/;
public native final void play() /*-{
this.play();
}-*/;
//... more methods here
}
用法:
Media m = Media.newInstance("http://www.example.com/src.mp3", new Command() {
@Override
public void execute() {
// Code executed after Media is created.
}
});
m.getCurrentPosition(new AsyncCallback<String>() {
@Override
public void onSuccess(String position) {
Window.alert(position);
}
});
m.play();
這是一個粗略的草圖,如果你知道更多關於類型是什麼傳遞給回調是你可以做更好的事情,如它是一個int
或另一個JS覆蓋類型。
該API有點奇怪,因爲一切顯然是異步的,但這就是生活。
一旦你掌握了編寫GWT JSNI綁定的訣竅,它非常簡單。
如果你最終走上了這條道路,如果你開源你的GWT包裝庫,那麼其他GWT開發者可以編寫一些iPhone/Android應用程序將會非常棒。
我只需要播放方法really.I我不太一樣懂行這樣做正確我guess.That代碼看起來真的很陌生:-)
還是不能接受你的answer.The網站無法識別我很奇怪。
我試圖利用媒體在我的onModuleLoad
構造TESTPHONEGAP.Media時,遇到下列錯誤(字符串,新司令部(){})是未定義
Media m = new Media("test.mp3", new Command() {
@Override
public void execute() {
}
});
m.play()
使用類如與我的main主模塊相同的文件中的「內部類」onModuleLoad
這是奇怪的網站不認識我。我也試圖接受上述答案。 – james 2010-12-14 17:16:18
我的示例不正確。構造函數不正確,請改用'newInstance()'。 – 2010-12-14 19:26:37
請使用評論,而不是新的答案,以迴應我的答案。點擊答案底部的「添加評論」。 – 2010-12-14 19:27:01
添加了'play()'方法的示例,這是最簡單的方法,因爲它不包含任何參數。 – 2010-12-14 17:48:49