Angular 停止播放录音机
嗨,我正在尝试创建一个录音应用程序,目前我正在使用cordova插件,应用程序开始录音并停止。当我尝试播放一个文件时,当音频完成并且在该列表中单击播放两个音频时,该文件不会移动到停止状态,两个音频文件都会播放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').
/*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}
我需要的是当一个播放按钮被点击时,它应该在播放完成时移动到停止状态,并且不应该同时播放多个音频。谁能帮帮我吗