2016-07-22 17 views
7

Şu anda kullanıcıların kendi seslerini kaydetmelerine, kaydetmeyi durdurmasına ve bu sesi tekrar çalmalarına izin veren bir İyonik 2 uygulaması üzerinde çalışıyorum. İyonik-yerli göre, onlar MediaPlugin ve MediaCapture olan 2 eklentileri sağladıklarını görebiliyorum. MediaPlugin'i kullanarak denedim, ancak kayda başlarken sorunla karşılaştım, durdur ve çaldım. Bu eklentiyi kullanan herhangi biri var mı? İyonik dokümanlar ve diğer bazı blogları inceledim ama yine de yapamıyorum. Ben çok yeni, çabalarınız için çok teşekkür ederim. Tüm fikrini takdir ediyorum.İyonik 2'de ses ve oynatma nasıl kaydedilir?

I/MPEG4Writer( 401): Received total/0-length (42/0) buffers and encoded 42 frames. - audio 
    I/MPEG4Writer( 401): Audio track drift time: 0 us 
    D/MPEG4Writer( 401): Stopping Audio track source 
    E/genymotion_audio( 401): get_next_buffer() pcm_read error -16 
    D/MPEG4Writer( 401): Audio track stopped 
    D/MPEG4Writer( 401): Stopping writer thread 
    D/MPEG4Writer( 401): 0 chunks are written in the last batch 
    D/MPEG4Writer( 401): Writer thread stopped 
    I/MPEG4Writer( 401): The mp4 file will not be streamable. 
    D/MPEG4Writer( 401): Stopping Audio track 
    D/AudioPlayer(1116): renaming /storage/emulated/0/tmprecording.3gp to /storage/emulated/0/../Documents/undefined-.wav 
    E/AudioPlayer(1116): FAILED renaming /storage/emulated/0/tmprecording.3gp to /storage/emulated/0/../Documents/undefined-.wav 
    W/PluginManager(1116): THREAD WARNING: exec() call to Media.stopRecordingAudio blocked the main thread for 135ms. Plugin should use CordovaInterface.getThreadPool(). 

: Kaydı durdurmak ederken

I/MPEG4Writer( 401): limits: 2147483647/0 bytes/us, bit rate: 12200 bps and the estimated moov size 3072 bytes 
D/Genyd ( 56): Received Set Clipboard 
D/Genymotion( 56): Received Set Clipboard 
D/dalvikvm( 379): GC_CONCURRENT freed 717K, 13% free 6011K/6864K, paused 0ms+1ms, total 10ms 
E/genymotion_audio( 401): get_next_buffer() pcm_read error -1 
W/PluginManager(1116): THREAD WARNING: exec() call to Media.startRecordingAudio blocked the main thread for 10037ms. Plugin should use CordovaInterface.getThreadPool(). 
E/genymotion_audio( 401): get_next_buffer() pcm_read error -16 
E/genymotion_audio( 401): get_next_buffer() pcm_read error -16 
E/genymotion_audio( 401): get_next_buffer() pcm_read error -16 
E/genymotion_audio( 401): get_next_buffer() pcm_read error -16 
E/genymotion_audio( 401): get_next_buffer() pcm_read error -16 
E/genymotion_audio( 401): get_next_buffer() pcm_read error -16 
I/MPEG4Writer( 401): setStartTimestampUs: 10031588 
I/MPEG4Writer( 401): Earliest track starting time: 10031588 
E/genymotion_audio( 401): get_next_buffer() pcm_read error -16 
E/genymotion_audio( 401): get_next_buffer() pcm_read error -16 
E/genymotion_audio( 401): get_next_buffer() pcm_read error -16 
E/genymotion_audio( 401): get_next_buffer() pcm_read error -16 
E/genymotion_audio( 401): get_next_buffer() pcm_read error -16 
E/genymotion_audio( 401): get_next_buffer() pcm_read error -16 

Bu benim emülatörü var günlükleri geçerli:

Selamlar,

Bu

Kaydı başlatmak ederken emülatörü var günlükleri olduğunu İşte benim home.ts kodum:

import {Component} from '@angular/core'; 
import {NavController, Platform, Page, Events} from 'ionic-angular'; 
import {MediaPlugin} from 'ionic-native'; 

@Component({ 
    templateUrl: 'build/pages/home/home.html' 
}) 
export class HomePage { 
    private _platform: Platform; 
    private _fileRecord: MediaPlugin; 
    private _pathFile: string; 
    private _nameFile: string; 
    constructor(private navCtrl: NavController, platform: Platform) { 
    this._platform = platform; 
    } 
    public startRecord(): void { 
    this._pathFile = this.getPathFileRecordAudio(); 
    this._fileRecord = new MediaPlugin(this._pathFile); 
    this._fileRecord.startRecord(); 
    } 

    public stopRecord(): void { 
    this._fileRecord.stopRecord(); 
    } 

    private startPlay(): void { 
    this._fileRecord = new MediaPlugin(this._pathFile); 
    this._fileRecord.play(); 
    } 

    private getPathFileRecordAudio(): string { 
    let path: string = (this._platform.is('ios') ? '../Library/NoCloud/': '../Documents/'); 
    return path + this._nameFile + '-' + '.wav'; 
    } 
} 

cevap

0

Eklenti için source'daki yorumlara baktınız mı? Şeyler tweak hakkında notlar vardır ... Birisi benzer bir şey vardı here ama hataları ile ilgili çok daha fazla ayrıntı verdi. (Ve yorumları o cevapta kopyaladım).