【问题标题】:Could not make audio playback无法播放音频
【发布时间】:2017-01-18 08:19:24
【问题描述】:

我正在尝试录制音频并将其保存到特定文件夹并使用该保存的音频进行一些播放功能。我可以录制并保存它,但我无法将该音频文件保存到目录中,也无法播放,有人可以帮我吗

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设备上测试它 提前感谢您的帮助

【问题讨论】:

  • 有人可以帮我@Minto

标签: angular ionic2 cordova-plugins


【解决方案1】:

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.');
         }
 }

【讨论】:

  • 谢谢,但您能否播放录制的音频并将其重命名为@SOLER
【解决方案2】:

我回答您的主要问题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);    

【讨论】:

  • 我可以在不播放的情况下获得媒体时间
  • 不幸的是这个插件我不这么认为。我的例子不是最好的,但我用静音(setVolume(0))开始播放,然后创建一个间隔,我getDuration并每毫秒更新一次,直到持续时间
  • 有没有其他方法可以录制音频进行播放,获取其持续时间和录制音频的文件大小
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多