#cordova #angular #ionic2 #watson
#кордова #angular #ionic2 #watson
Вопрос:
Привет, я разрабатываю гибридное приложение в Кордове. Я хотел бы воспроизвести аудио из приложения. Я получил ошибку, используя:
- Аудио тег внутри html
- Аудио объект javascript
- 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.