2017-01-18 4 views
0

Ich versuche, Audio aufzunehmen und in einem bestimmten Ordner zu speichern und einige Wiedergabefunktionen mit diesem gespeicherten Audio zu machen. Ich kann es aufzeichnen und speichern, aber ich konnte nicht, dass die Audio-Datei in ein Verzeichnis speichern und in der Lage könnte nicht die Wiedergabe machen könnte mir jemand helfenKonnte keine Audiowiedergabe machen

import { Component } from '@angular/core'; 
import {File} from 'ionic-native'; 
import { NavController,AlertController } from 'ionic-angular'; 
import { MediaPlugin } from 'ionic-native'; 

declare var cordova; 
declare var cordovaFile; 

@Component({ 
    selector: 'page-home', 
    templateUrl: 'home.html' 
}) 


export class HomePage { 

    media: MediaPlugin = new MediaPlugin('../Library/NoCloud/recording.wav'); 

    constructor(public navCtrl: NavController, 
       public alertCtrl: AlertController) { 

    } 
    createFolder(){ 
     console.log('inside folder creation'); 
     File.createDir(cordova.file.externalRootDirectory, "Audio_folder", false) 
       .then(function (success) { 
       console.log("folder creation sucess",success); 
       }, function (error) { 
       console.log("folder creation error",error); 
       }); 
    } 

    startRecording() { 
     try {   
      this.media.startRecord();   
      console.log('started to record'); 
     }  
     catch (e) { 
      this.showAlert('Could not start recording.'); 
     } 
    } 
stopRecording() { 
     try { 
      this.media.stopRecord(); 
      console.log("media time",this.media.getDuration()); 
      console.log('record stopped');  
     } 
     catch (e) { 
      this.showAlert('Could not stop recording.'); 
     } 


    } 

startPlayback() { 
     try { 
      this.media.play(); 
      console.log('in start play back function'); 
      console.log('in start play back function',this.media.play); 
     } 
     catch (e) { 
      this.showAlert('Could not play recording.'); 
     } 
    } 

    stopPlayback() {console.log('playback stopped'); 
     try { 
      this.media.stop(); 
     } 
     catch (e) { 
      this.showAlert('Could not stop playing recording.'); 
     } 
    } 
    showAlert(message) { 
     let alert = this.alertCtrl.create({ 
      title: 'Error', 
      subTitle: message, 
      buttons: ['OK'] 
     }); 
     alert.present(); 
    } 

} 

Derzeit ich könnte die Lage, einen Ordner in meine mobilen internen Speicher zu machen und Ich konnte es mit meinem Dateiexplorer sehen und die aufgenommene Audiodatei ist auch in meinem internen Speicher sichtbar, aber ich konnte keine Wiedergabe machen, ich erhalte den Fehlercode 1 NOT_FOUND_ERR. Und wenn ich versuche Dauer zu erhalten i erhalten -1 in meiner Konsole Und ich bin es testet in Android-Gerät Vielen Dank für Ihre Hilfe im Voraus

+0

mir jemand @Minto –

Antwort

0

Audiorecorder auf Android Verwendung:

public media: MediaPlugin; 

startRecording() { 
    try { 
     this.media = new MediaPlugin(“recording.mp3”);  
     this.media.startRecord();   
     console.log('started to record'); 
     }  
    catch (e) { 
     this.showAlert('Could not start recording.'); 
     } 
} 
+0

Dank helfen könnte, aber könnten Sie eine Wiedergabe der aufgezeichneten Audio machen und es auch @SOLER umbenennen –

0

Ich gebe eine Antwort here zu Ihrer Hauptfrage. Ich denke, wenn Sie diesen Anleitungen folgen, wird Ihre Anwendung funktionieren.

Die getDuration() Funktion zeigt Ihnen immer -1, wenn Sie es überprüfen, ohne die Wiedergabe zu starten. Wenn Sie also die Dauer der Musik überprüfen möchten, müssen Sie die Wiedergabe starten.

var durationInterval = window.setInterval(() => { 
    if (this.mediaPlugin) { 
    this.durationOfMusic = this.mediaPlugin.getDuration().toFixed(2); 
    } 

    if (this.durationOfMusic > -1) {   
    window.clearInterval(durationInterval); 
    } 
}, 1);  
+0

ich die Medienzeit –

+0

Leider nicht, ohne die Wiedergabe bekommen konnte ich mit diesem Plugin tun denke schon. Mein Beispiel ist nicht das beste, aber ich starte die Wiedergabe mit mute (setVolume (0)), und dann ein Intervall erstellen, wo ich GetDuration und aktualisieren Sie es alle ms, bis die Dauer <0, dann starte ich die Musik von Anfang an mit Volumen (1). Sie können jedoch die Zeit bei der Aufnahme mit Intervall messen, aber das ist nicht der beste Weg (definitiv nicht der beste). – Hexiler

+0

Gibt es eine andere Möglichkeit, wie wir Audiowiedergabe aufnehmen können, die Dauer und die Dateigröße des aufgenommenen Audiomaterials ermitteln können –