我已经在Android上成功实现了nativescript-audio插件。我在项目中使用纯JS。当我在ios上运行它时,出现以下错误。



我在网上找到的大多数示例都出现了此错误(包括以下示例,这些示例在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...");
        })

看起来录音工作正常(没有错误,并且响应正确,尽管我无法测试文件是否已正确创建...)但是播放会出现此错误。任何的想法 ?

最佳答案

我为您创建了一个普通的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;
}

09-08 10:28