gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 02:54:10 26 4
gpt4 key购买 nike

我正在尝试编写一个库,使初学者可以更轻松地使用SoundCloud JavaScript SDK(http://developers.soundcloud.com/docs/api/sdks#javascript)。

我正在使用'dart:js'库,并且
我只使用一个类来处理代理。

class SCproxy {
JsObject proxy = context['SC'];
String client_id;

SCproxy(this.client_id) {}

initialize() {
proxy.callMethod('initialize', [client_id]);
}
stream(String track_id){
var track = new JsObject(proxy.callMethod('stream',[track_id]));
print(track); // track should be the soundmanager2 object that we can call '.play' on.
}

我托管的仓库是( https://github.com/darkkiero/scproxy)

当我尝试运行“流”方法时,出现了我的问题。

main() {
SCproxy SC = new SCproxy('Your SoundCloud API client_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'这也将是有用的信息。

最佳答案

您似乎并没有遵循SoundCloud JavaScript SDK documentation。特别是对于stream方法,该方法将回调作为参数并且不返回。

以下Dart代码:

context['SC'].callMethod('stream', ['/tracks/293', (sound) {
sound.callMethod('play');
}]);

将与以下JS代码相同:

SC.stream("/tracks/293", function(sound){
sound.play();
});

您可以查看 Using JavaScript from Dart以获得更多说明。

关于dart - 使用dart:js通过SoundCloud JavaScript API传输音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20585852/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com