Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 停止播放录音机_Angular_Ionic2_Cordova Plugins - Fatal编程技术网

Angular 停止播放录音机

Angular 停止播放录音机,angular,ionic2,cordova-plugins,Angular,Ionic2,Cordova Plugins,嗨,我正在尝试创建一个录音应用程序,目前我正在使用cordova插件,应用程序开始录音并停止。当我尝试播放一个文件时,当音频完成并且在该列表中单击播放两个音频时,该文件不会移动到停止状态,两个音频文件都会播放 /*this will have the list of all files recorded */ ListAudioFiles(){ File.listDir(cordova.file.externalRootDirectory, 'myFolder/Audios').

嗨,我正在尝试创建一个录音应用程序,目前我正在使用cordova插件,应用程序开始录音并停止。当我尝试播放一个文件时,当音频完成并且在该列表中单击播放两个音频时,该文件不会移动到停止状态,两个音频文件都会播放

/*this will have the list of all files recorded */
ListAudioFiles(){
        File.listDir(cordova.file.externalRootDirectory, 'myFolder/Audios').then(
          (allFiles) => {
            // do something

            console.log("we have audio files", allFiles);
            console.log("we have audio files", allFiles.length);
            for (var i = 0; i < allFiles.length; i++){ 
                this.MyAudioFiles.push({
                    audio: allFiles[i],
                    status: false                   
                });
                console.log(this.MyAudioFiles);
            }
          }).catch(
          (err) => {
            // do something
            console.log("file listing err", err)
          });
    }


    startPlayback(audio, i) {   
        try {
            console.log("start playback function",audio.name);
            console.log("start playback function",i);
            this.MyAudioFiles[i].status = true;

            var pathalone =  audio.nativeURL;
            this.file = new MediaPlugin(pathalone, (status) => {

            });
            this.file.play(); 
            console.log("playback status", status);         
            console.log("play back file getDuration", this.file.getDuration());

        }
        catch (e) {
            this.showAlert('Could not play recording.');
        }
    }

    stopPlayback(audio, i) {
        console.log("stop pplayback function",audio.name);
        console.log("stop pplayback function",i);
        this.MyAudioFiles[i].status = false;
        this.file.stop(); 
    }
/*这将记录所有文件的列表*/
ListAudioFiles(){
File.listDir(cordova.File.externalRootDirectory,'myFolder/Audios')。然后(
(所有文件)=>{
//做点什么
log(“我们有音频文件”,所有文件);
log(“我们有音频文件”,allFiles.length);
对于(var i=0;i{
//做点什么
log(“文件列表错误”,err)
});
}
开始播放(音频,i){
试一试{
console.log(“启动播放功能”,audio.name);
console.log(“启动回放功能”,i);
此.MyAudioFiles[i].status=true;
var pathlone=audio.nativeURL;
this.file=新的MediaPlugin(PathOnline,(状态)=>{
});
这个.file.play();
console.log(“回放状态”,状态);
log(“回放文件getDuration”,this.file.getDuration());
}
捕获(e){
此.showart('无法播放录制');
}
}
停止回放(音频,i){
log(“停止pplayback函数”,audio.name);
console.log(“停止pplayback功能”,i);
this.MyAudioFiles[i].status=false;
这个.file.stop();
}
我的html是

<ion-list>
        <ion-item *ngFor="let file of MyAudioFiles let i = index ">
            <ion-grid>
                <ion-row>
                    <ion-col width-10 >  
                        <ion-icon style ="padding-top: 9px;"  *ngIf="!file.status" name="play" (click)="startPlayback(file.audio, i)" ></ion-icon>
                        <ion-icon style ="padding-top: 9px;"  *ngIf="file.status" name="square" (click)="stopPlayback(file.audio, i)" ></ion-icon>
                    </ion-col>
                    <ion-col width-67 style ="padding-top:  16px;">

                       {{file.audio.name}}
                    </ion-col>
                    <ion-col width-10>

                        <button *ngIf="!file.upload" (click)="loginPage(file, i)" ion-button color="primary">
                            <ion-icon name="cloud-upload" primary></ion-icon>
                        </button>

                        <button *ngIf="file.upload" ion-button color="primary">
                            <ion-icon name="done-all" primary></ion-icon>
                        </button>
                         <!--button (click)="fileToTrash(file)" ion-button color="danger">
                            <ion-icon  name="trash" primary></ion-icon>
                        </button-->
                    </ion-col>
                </ion-row>
            </ion-grid>
        </ion-item>
    </ion-list>

{{file.audio.name}

我需要的是当一个播放按钮被点击时,它应该在播放完成时移动到停止状态,并且不应该同时播放多个音频。谁能帮帮我吗