Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用dart:js通过SoundCloud JavaScript API传输音频_Dart_Soundcloud_Soundmanager2_Dart Js Interop - Fatal编程技术网

使用dart:js通过SoundCloud JavaScript API传输音频

使用dart:js通过SoundCloud JavaScript API传输音频,dart,soundcloud,soundmanager2,dart-js-interop,Dart,Soundcloud,Soundmanager2,Dart Js Interop,我正在尝试编写一个库,使dartisans更容易使用SoundCloud JavaScript SDK() 我使用的是'dart:js'库 我只使用一个类来处理代理 类SCproxy{ JsObject proxy=context['SC']; 字符串客户端id; SCproxy(this.client_id){} 初始化(){ callMethod('initialize',[client_id]); } 流(字符串跟踪\u id){ var track=newjsobject(proxy.c

我正在尝试编写一个库,使dartisans更容易使用SoundCloud JavaScript SDK()

我使用的是'dart:js'库 我只使用一个类来处理代理

类SCproxy{
JsObject proxy=context['SC'];
字符串客户端id;
SCproxy(this.client_id){}
初始化(){
callMethod('initialize',[client_id]);
}
流(字符串跟踪\u id){
var track=newjsobject(proxy.callMethod('stream',[track_id]);
print(track);//track应该是soundmanager2对象,我们可以调用它。play(播放)。
}
我主持的回购协议是()

我的问题发生在我尝试运行“stream”方法时

main(){
SCproxy SC=新的SCproxy(“您的SoundCloud API客户端_ID”);
SC.initialize();
SC.stream('/tracks/111477464');
}
当我尝试获取并使用javascript“SC.stream”方法返回的soundmanager2对象时,dart编辑器会给出以下异常:

Breaking on exception: type 'ScriptElement' is not a subtype of type 'JsFunction' of 'constructor'.

我的印象是,我应该能够通过收集“SC.stream”的回调来获取soundmanager2对象的dart JsObject,但我不确定如何获取。然而,我可能完全误用了“dart:js”,这也将是有用的信息。

您似乎没有遵循。特别是对于
我将回调作为参数且不返回的方法

以下Dart代码:

context['SC'].callMethod('stream',['/tracks/293',(声音){
sound.callMethod('play');
}]);
将执行与此JS代码相同的操作:

SC.stream(“/tracks/293”,函数(声音){
声音。播放();
});

您可以查看更多说明。

SoundManager 2是一项要求吗?如果您只想播放音乐,这会带来很大的开销。