我已经在android上成功实现了nativescript-audio插件。我在项目中使用纯JS。当我在ios上运行它时,出现以下错误。
NSURLErrorDomain代码= -1002“不受支持的url”。
我在网上找到的大多数示例都出现了此错误(包括以下示例,这些示例在android上完美运行)。
var ns_audio = require("nativescript-audio");
var player = new ns_audio.TNSPlayer();
var playerOptions = {
audioFile: "http://www.noiseaddicts.com/samples_1w72b820/2514.mp3",
loop: false,
completeCallback: function () {
console.log('completePlayer')
},
errorCallback: function (errorObject) {
console.log(JSON.stringify(errorObject));
},
infoCallback: function (args) {
console.log(JSON.stringify(args));
}
};
player.playFromUrl(playerOptions)
.then(function (res) {
console.log(res);
})
.catch(function () {
console.log("didn't work...");
})
看起来录音工作正常(没有错误,并且响应正确,尽管我无法测试文件是否已正确创建...)但是播放会出现此错误。有什么想法吗?
答案 0 :(得分:0)
我为您创建了一个普通的JS playground。我已经测试了您在帖子中提供的mp3 URL,并且可以在ios上正常工作。 试一试,看看你是否缺少什么。这是
function pageLoaded(args) {
var page = args.object;
const player = new audio.TNSPlayer();
const playerOptions = {
audioFile: 'http://www.noiseaddicts.com/samples_1w72b820/2514.mp3',
loop: false,
completeCallback: function () {
console.log('finished playing');
},
errorCallback: function (errorObject) {
console.log(JSON.stringify(errorObject));
},
infoCallback: function (args) {
console.log(JSON.stringify(args));
}
};
player
.playFromUrl(playerOptions)
.then(function (res) {
console.log(res);
})
.catch(function (err) {
console.log('something went wrong...', err);
});
page.bindingContext = homeViewModel;
}
答案 1 :(得分:0)
使用nativescript-audio插件(适用于iOS)进行录制和播放现在都可以使用!我的第一个问题是我需要录制到.caf(而不是.mp3),所以我使用了
if(isAndroid)
{
extention = ".mp3";
}
else
{
extention = ".caf";
}
在我录制音频文件之前。...
我也遇到了一个愚蠢的疏忽,很容易错过。 我是根据上述示例创建的代码,但是因为我播放了录制到.caf文件中的声音。我需要使用playFromFile而不是playFromUrl作为示例使用。 (多数民众赞成在引起错误的原因:NSURLErrorDomain代码= -1002“不受支持的网址”。)
player
.playFromFile(playerOptions)
.then(function (res) {
希望这种关注点可以使某人头疼!