Ich verwende Cordova-Plugin-Media-mit-Kompression in einer Ionic 2 App.cordova-plugin-media-with-compression auf iOS scheint nicht zu spielen Audiodateien nach dem Verschieben
Auf iOS kann ich aufzeichnen und wiedergeben, wenn ich startRecord()
einen Dateinamen übergebe und das wieder ohne Änderung this.media
aufrufen.
Ich kann nicht scheinen, Audiodateien abzuspielen, die an anderer Stelle im Dateisystem gespeichert werden - da ich einen neuen src an startRecord()
übergeben muss und dieses ist das Bit, das ich denke, dass ich falsch tue.
import { Component } from '@angular/core';
import { ModalController, LoadingController, ToastController, Platform } from 'ionic-angular';
import { File, FileEntry, Entry, FileError, DirectoryEntry} from 'ionic-native';
declare var Media: any; // stops errors w/ cordova-plugin-media-with-compression types
@Component({
selector: 'page-add-doc',
templateUrl: 'add-doc.html'
})
export class AddDocPage {
isRecording = false;
isRecorded = false;
audioUrl ='';
localAudioUrl = '';
media: any;
newFileName: string;
newFileNameM4A: string;
homerAudio = 'http://techslides.com/demos/samples/sample.m4a'
constructor(private modalCtrl: ModalController,
private loadingCtrl: LoadingController,
private toastCtrl: ToastController,
private platform: Platform,
) {
platform.ready()
.then(() => {
console.log('Platform Ready');
});
}
ionViewDidLoad() {
this.newFileName = new Date().getTime().toString();
this.newFileNameM4A = this.newFileName +'.m4a';
}
onRecordAudio() {
this.media = new Media(this.newFileNameM4A);
this.media.startRecord();
this.isRecording = true;
}
onStopRecordAudio() {
this.media.stopRecord();
this.media.release();
this.isRecording = false;
this.isRecorded = true;
try {
File.copyFile(File.tempDirectory, this.newFileNameM4A, File.dataDirectory, this.newFileNameM4A)
.then(
(data: Entry) => {
this.audioUrl = data.nativeURL;
});
} catch (FileError) {
console.log(FileError)
};
}
onPlayback() {
this.media = new Media(this.newFileNameM4A);
this.media.play();
this.media.release();
}
onPlaybackTempDirectory() {
this.media = new Media(File.tempDirectory + this.newFileNameM4A);
this.media.play();
this.media.release();
}
onPlaybackDataDirectory() {
this.media = new Media(File.dataDirectory + this.localAudioUrl);
this.media.play();
this.media.release();
}
onHomerAudio() {
this.media = new Media(this.homerAudio)
this.media.play();
this.media.release();
}
}
Können Sie Ihre Implementierung (Code) zeigen, bitte? – Sampath
Ich kann 'onHomerAudio()' Methode auch auf Android-Gerät nicht ausführen? kannst du mir sagen, wie ich das mache? – Sampath