我正在尝试录制音频并将其保存到特定文件夹,并使用保存的音频制作一些播放功能。我可以录制并保存它,但我无法将该音频文件保存到目录中,并且无法播放可能有人帮助我
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();
}
}
目前我可以在我的移动内部存储中创建一个文件夹,我可以使用我的文件浏览器查看它,并且录制的音频文件也可以在我的内部存储中看到,但我无法播放我得到一个错误代码1 NOT_FOUND_ERR。 如果我试图获得持续时间我在我的控制台得到-1 我正在Android设备上测试它 感谢您的帮助
答案 0 :(得分:0)
Android使用的录音机:
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.');
}
}
答案 1 :(得分:0)
我对你的主要问题给出答案here。我想如果您遵循这些指南,您的申请将会有效。
如果在不开始播放的情况下进行检查, getDuration()函数将始终显示-1。 因此,如果您想检查音乐的持续时间,则必须开始播放。
var durationInterval = window.setInterval(() => {
if (this.mediaPlugin) {
this.durationOfMusic = this.mediaPlugin.getDuration().toFixed(2);
}
if (this.durationOfMusic > -1) {
window.clearInterval(durationInterval);
}
}, 1);