плагин nativescript-audio не работает на ios - PullRequest
0 голосов
/ 04 марта 2019

Я успешно реализовал плагин nativescript-audio на Android.Я использую простой JS в моем проекте.Когда я запускаю его на ios, я получаю следующую ошибку.

NSURLErrorDomain Code = -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...");
        })

Похоже, что запись работает (без ошибок и правильных ответов, хотя я не могу проверить, правильно ли был создан файл ...) Но воспроизведение выдает эту ошибку.Есть идеи?

Ответы [ 2 ]

0 голосов
/ 18 марта 2019

Запись и воспроизведение с помощью плагина nativescript-audio (для iOS) теперь работают!Моя первая проблема заключалась в том, что мне нужно было записать в .caf (не .mp3), поэтому я использовал

if(isAndroid)
{ 
    extention = ".mp3"; 
}
else 
{ 
    extention = ".caf"; 
} 

, прежде чем записать аудиофайл ....

Также я запустилглупое упущение, которое легко пропустить .... я создал свой код из вышеупомянутого примера, но потому что я играю звук, который записан в файл .caf.Мне нужно было использовать playFromFile, а не playFromUrl, как в примере.(вот что вызвало ошибку: NSURLErrorDomain Code = -1002 "неподдерживаемый URL-адрес".)

 player
    .playFromFile(playerOptions)
    .then(function (res) {

надеюсь, эта точка внимания может спасти кого-то от головной боли!

0 голосов
/ 05 марта 2019

Я создал простую игровую площадку JS для вас.Я проверил URL-адрес mp3, который вы указали в посте, и он отлично работает на 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...