Возможно, вам не понадобятся плагины, поскольку веб-API поддерживают загрузку файлов с устройств довольно широко. Вот что вы можете сделать:
html: добавить кнопку Ioni c и поместить внутри нее файл ввода.
<ion-button expand="full">
<ion-icon lazy="true" slot="start" name="musical-notes"></ion-icon>
<ion-label slot="end">Upload Sound</ion-label>
<input type="file" (change)="loadSoundFileFromDevice($event)" id="file-input" accept="audio/mpeg, audio/wav">
</ion-button>
Обратите внимание, что вы можете ограничить определенные типы файлов, используя типы пантомимы. См. Здесь примеры: https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types
ts: использовать API FileReader.
loadSoundFileFromDevice = (event) => {
if (!event.target.files[0]) return;
if (!file.type.match('audio')) return;
const file = event.target.files[0];
// do the blob:
let blobReader = new FileReader();
blobReader.readAsArrayBuffer(file);
blobReader.onload = () => {
let blob: Blob = new Blob([new Uint8Array((blobReader.result as ArrayBuffer))]);
let blobURL: string = URL.createObjectURL(blob);
// do the rest with the actual file
};
// handle errors:
blobReader.onerror = (error) => {
this.foundation.handleError(error);
};
};
Я не тестировал этот код, но теоретически, как только вы получили файл BLOB-объекта вы должны иметь возможность использовать его в теге <audio>
.