Я использую NativeScript с Angular 2 и новейший рабочий процесс Webpack, а также симулятор iOS.Я использую плагин nativescript-audio для воспроизведения звуковых файлов при нажатии кнопки.
Моя цель - воспроизводить встроенные в приложение локальные звуковые файлы без использования интернет-соединения для их потоковой передачи или загрузки их в первую очередь.
Я скачал и попробовал каждое демонстрационное приложение, которое я могу найти, и точно следовал инструкциям в моем собственном приложении, но я могу заставить плагин воспроизводить звук только при ссылке на звуковой файл на веб-сервере где-нибудьостальное.Попытка воспроизведения mp3-файла, хранящегося локально, не работает.
Я также использовал модуль tns-core-modules / file-system для поиска файла, на который я ссылался, но я нигде не могу найти файлв скомпилированном приложении.Кажется, что файл просто даже не включается в процесс сборки, и я понятия не имею, почему.
Все примеры приложений, которые я нашел, воспроизводят только файлы, хранящиеся на сервере.Все они также используют устаревший рабочий процесс Legacy, и ни один из них не использует систему Angular 2.
Вот мой файл component.html:
<ActionBar class="action-bar">
<Label class="action-bar-title" text="Sound Page"></Label>
</ActionBar>
<StackLayout orientation="vertical" width="100%" height="100%">
<Button class="btn btn-primary btn-rounded-sm" id="playButton" text="Play Sound"
(tap)="onPlayTap($event)"></Button>
</StackLayout>
Вот мой компонент Angular 2.ts file:
import { Component } from "@angular/core"
import { TNSPlayer } from "nativescript-audio"
const player = new TNSPlayer()
const playerOptions =
{
audioFile: "~/audio/session_1.mp3",
loop: false,
autoplay: false
}
@Component({
selector: "SongPage",
moduleId: module.id,
templateUrl: "./song-page.component.html"
})
export class SongPageComponent {
constructor()
{
player
.initFromFile(playerOptions)
.then(res => console.log(res))
.catch(err => console.log("something went wrong...", err))
}
onPlayTap() { player.play() }
}
Вместо воспроизведения звукового файла я получаю сообщение об ошибке из обещания player.initFromFile:
Файл журнала CONSOLE: ///app/vendor.js:59907: 39: что-то пошло не так ... Ошибка Domain = NSOSStatusErrorDomain Code = 2003334207 "(null)"
И ошибка системы: файл CONSOLE ERROR: ///app/vendor.js: 41405:24: ОШИБКА Ошибка: Uncaught (в обещании): TypeError: null не является объектом (оценка '_this._player.play')
Из того, что я понимаю, ошибки говорят мне, что он не может найтифайл, который, кажется, имеет смысл, потому что когда я открываю файл скомпилированного приложения, я нигде не могу найти звуковой файл.
- Что-то не так с моим кодом?
- Если нет, как мне убедиться, что файл включен в скомпилированный файл приложения и сделать suплагин может его найти?