2017-09-27 13 views
1

Ionic 2でアプリケーションを開発していて、@ionic-native/Cameraに問題があります。私はUpload.tsIonic 2カメラ選択iOSのビデオが動作しない

let loader = this.loading.create({ 
    content: 'Carregando video....' 
}); 
loader.present().then(() => { 
    const options: CameraOptions = { 
    quality: 100, 
    destinationType: this.camera.DestinationType.FILE_URI, 
    sourceType: this.camera.PictureSourceType.PHOTOLIBRARY, 
    mediaType: this.camera.MediaType.VIDEO, 
    } 
    this.camera.getPicture(options).then((videoData) => { 
     this.uploadForm.controls['file'].setValue(videoData) 
     loader.dismiss(); 
    }, (err) => { 
     console.log(err); 
    }); 
}); 

にこのコードこのコードは、Androidで正常に動作しますが、私はionic cordova run ios -lcを実行すると、約束this.camera.getPicture(options)が解決されることはありませんので、ローダーは永遠に走り続けるをしました。

ありがとうございます!

答えて

0

だから問題が見つかりました。まず、ネイティブコンポーネントのバグは-l (--livereload)です。私は理由を説明する方法はわかりませんが、私はこの情報をIonic Worldwide slackから得ています。イオンチームのメンバーは言った:

"live-reload on a device can cause issues with plugins and file system". 

をだから私はiOSのエミュレータとSafariを使用してAPPをdebbugする方法を理解するためにこのビデオを使用しました。

https://www.youtube.com/watch?v=Aob749bkoLY

ビデオの少し簡単:iOSのエミュレータを使用しているとき、あなたはメニューDeveloper > Emulator > <App Name>にアクセスすることができます。インスペクタツールを含む新しいウィンドウが開き、エミュレータからのログがこのウィンドウに表示されます。

ビデオURLが間違っていることがわかりました。

filePath = 'file:///' + this.uploadForm.controls['file'].value; 

しかし、iOSのは、ピッカーがすでに持つファイル:前に、アンドロイドとの互換性があるように、私は、システム内のビデオポインタを見つけてサーバーに送信する責任が、このコードました「ファイルを:///」プレフィックス。それでもう一度接頭辞を付けると間違ったものになっただからこのようにコードを更新しました:

この問題は解決しました。

関連する問題