2017-03-21 15 views
2

Ionic 2アプリでcordova-plugin-media-with-compressionを使用しています。iOSのcordova-plugin-media-with-compressionは、移動後にオーディオファイルを再生できないようです。

iOSでは、startRecord()にファイル名を渡して、これを変更せずに再び呼び出すことができます。this.media

新しいファイルをstartRecord()に渡す必要があるため、ファイルシステムの別の場所に保存されたオーディオファイルを再生できないようです。これは間違っていると思います。

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(); 
    } 
} 

答えて

0

はあなたの実装(コード)を表示することができます私はhttps://issues.apache.org/jira/browse/CB-7007

+0

からの回答でこれを解決したことがあります信じますか? – Sampath

+0

アンドロイドデバイスで 'onHomerAudio()'メソッドを実行できませんか?それをどうやるか教えていただけますか? – Sampath

関連する問題