Ionic3: воспроизведение локальных аудиофайлов (файлы, сохраненные в SDCard) - PullRequest
0 голосов
/ 20 декабря 2018

Я создаю большое приложение для воспроизведения и загрузки аудио, читаю файлы в потоковом режиме ('https://anysite/track0.mp3') => Это работает, но когда я загружаю файлы, я не могу прочитать их с SD-карты,Я проверил свои файлы Android, файл существует, но я не смог прочитать его с помощью аудиоплеера в своем приложении.

Я пробовал 3 пути в конструкторе:

home.ts

export class HomePage {
  path;
  internalURL;
  URL;


  constructor(public navCtrl: NavController, 
          private file: File) {
  this.path = this.file.externalRootDirectory+"AwesomePlaces/track0.mp3";
  this.file.resolveLocalFilesystemUrl(this.path)
  .then(fileEntry =>{
    this.internalURL = fileEntry.toInternalURL();
    this.URL = fileEntry.toURL();
  })

выводит эти 3 пути:

путь и URL выводят тот же результат:

file:///storage/emulated/0/AwesomePlaces/track0.mp3

internalUrl выводит

cdvfile://localhost/sdcard/AwesomePlaces/track0.mp3

Но никтоиз этого пути не работает ни с аудиоплеером, ни с аудиоплеером Cordova Plugin, который основан на аудиоплеере HTML5.

home.html

<audio controls controlsList="nodownload" style="width: 100%">
    <source src="{{pathToTry}}" type="audio/mpeg">
    Your browser does not support the audio element.
</audio>

Работает только "https://anysite/track0.mp3"для меня

Я спрашиваю о решении для воспроизведения моих аудиофайлов SDCard в Android и ввода-вывода, и с линией прогресса Таким образом, пользователь может вручную изменить время воспроизведения, но нажав на строку прогресса.причина, по которой я не работал с плагином Media Native, который не предоставляет мне прогрess line.

Примечание:

Когда я использую Media Plugin с моим "путем", он работает:

this.audio = this.media.create(this.path);
this.audio.play(); // it plays 

Есть ли у кого-нибудьИдея?

...