typescript - چگونه میتوان کتابخانه ضبط صدا زیر را در آخرین نسخه انگولار پیادهسازی کرد؟


من سعی میکنم از کتابخانهی زیر برای ضبط صدای صوتی در انگولار استفاده کنم.

https://github.com/killroywashere/ng-audio-recorder

این نمونه کد برای استفاده از آن است:

import { NgAudioRecorderService, OutputFormat } from 'ng-audio-recorder';
...

@Component({...})
export class AppComponent {

    constructor(private audioRecorderService: NgAudioRecorderService) {
    
        this.audioRecorderService.recorderError.subscribe(recorderErrorCase => {
            // Handle Error
        })
    }
    
    startRecording() {
        this.audioRecorderService.startRecording();
    }
    
    stopRecording() {
         this.audioRecorderService.stopRecording(outputFormat).then((output) => {
            // do post output steps
         }).catch(errrorCase => {
             // Handle Error
         });
    }
}

مشکل این است که مشخص نمیکند فرمت خروجی چیست و چگونه باید ضبط صدا پخش شود. آیا کسی میتواند در این باره کمک کند؟

پاسخ شماره ۱

شما میتوانید فرمت خروجی را به این صورت مشخص کنید:

onStopRecording() {
        this.busyRecording = false;
        this.recordingStarted = false;
        let outputFormat = OutputFormat.WEBM_BLOB;
 
        this.audioRecorderService.stopRecording(outputFormat).then((output: Blob) => {
            this.blobData = output;

            this.populatePlayer(output);
         }).catch(errrorCase => {
             this.toast.error(errrorCase);
         });

    }

توجه: this.blobData از نوع Blob است.

توجه کنید که ما خروجی را به صورت یک Blob مجبور کردیم. فرمت خروجی یا نوع WEBM_BLOB دارد یا نوع WEBM_BLOB_URL.

فایل ng-audio-recorder.service.d.ts شکایت خواهد کرد چون ما نوع خروجی را تغییر دادیم، اما میتوانید به این سرویس بروید و آن را به یک BLOB تغییر دهید. اگر این کار نکرد میتوانید به Angular بگویید که از این نوع خطاها چشمپوشی کند.