Аудио из текста Watson в речь

#cordova #angular #ionic2 #watson

#кордова #angular #ionic2 #watson

Вопрос:

Привет, я разрабатываю гибридное приложение в Кордове. Я хотел бы воспроизвести аудио из приложения. Я получил ошибку, используя:

  1. Аудио тег внутри html
  2. Аудио объект javascript
  3. Ionic NativeAudio

Я также пытался загрузить файл и воспроизвести его, но когда я могу загрузить, я могу только в какой-то папке, воспроизвести файл только в другой папке.

ОТРЕДАКТИРУЙТЕ некоторый код: где, если я открою URL-адрес из Chrome, firefox или VLC, я смогу правильно слышать звук, если браузер не поддерживает аудио

Код Javascript: и URL-адрес такой же, как указано выше

 this.stream = new Audio(url);

this.stream.addEventListener('playing', (data) => {
  console.log(data);
});

this.stream.addEventListener('error', (error) => {
  console.log(error);
});
this.stream.play();
  

В консоли я получаю:

 Event {isTrusted: true, type: "playing", target: audio, currentTarget: audio, eventPhase: 2…}bubbles: falsecancelBubble: falsecancelable: truecurrentTarget: nulldefaultPrevented: falseeventPhase: 0isTrusted: trueisTrusted: truepath: Array[1]returnValue: truesrcElement: nulltarget: nulltimeStamp: 5007452.3950000005type: "playing"__proto__: Event
francesca-player.ts:35

Event {isTrusted: true, type: "error", target: audio, currentTarget: audio, eventPhase: 2…}bubbles: falsecancelBubble: falsecancelable: truecurrentTarget: nulldefaultPrevented: falseeventPhase: 0isTrusted: trueisTrusted: truepath: Array[1]returnValue: truesrcElement: nulltarget: nulltimeStamp: 5008322.655000001type: "error"__proto__: EventAT_TARGET: 2BLUR: 8192BUBBLING_PHASE: 3CAPTURING_PHASE: 1CHANGE: 32768CLICK: 64DBLCLICK: 128DRAGDROP: 2048FOCUS: 4096KEYDOWN: 256KEYPRESS: 1024KEYUP: 512MOUSEDOWN: 1MOUSEDRAG: 32MOUSEMOVE: 16MOUSEOUT: 8MOUSEOVER: 4MOUSEUP: 2NONE: 0SELECT: 16384bubbles: (...)get bubbles: ()cancelBubble: (...)get cancelBubble: ()set cancelBubble: ()cancelable: (...)get cancelable: ()constructor: Event()currentTarget: (...)get currentTarget: ()defaultPrevented: (...)get defaultPrevented: ()eventPhase: (...)get eventPhase: ()initEvent: initEvent()path: (...)get path: ()preventDefault: preventDefault()returnValue: (...)get returnValue: ()set returnValue: ()srcElement: (...)get srcElement: ()stopImmediatePropagation: stopImmediatePropagation()stopPropagation: stopPropagation()target: (...)get target: ()timeStamp: (...)get timeStamp: ()type: (...)get type: ()Symbol(Symbol.toStringTag): "Event"__proto__: Object
  

Кто-нибудь может мне помочь?
Daniele

Комментарии:

1. Пожалуйста, предоставьте больше кода и точное сообщение об ошибке

Ответ №1:

Для записи звука вам нужно использовать cordova-plugin-media-capture , а не <audio> тег. Подробнее читайте здесь: https://www.npmjs.com/package/cordova-plugin-media-capture

Кроме того, я бы предложил использовать плагин Cordova, который записывает аудио в формате .wav для Android, поскольку Watson Speech to Text принимает только определенные аудиоформаты. Я использовал это без особых проблем: https://github.com/petrica/wav-recorder

Комментарии:

1. Спасибо за ответ. Мне не нужно записывать звук, но воспроизводить звук из источника http.