2017-11-22 6 views
0

hereの基本コードを使用してカメラの動作を確認しています。唯一の違いは、スタンドアロンのカメラアプリを作る代わりに、他のアプリにコードを実装することです(アプリ内のボタンからカメラを開くこと)。エキスポネイティブカメラが反応しませんでした

私はコードに正確に従っていますが、カメラは写真を撮って保存しませんそれ。私は、コードを再確認し、私はそれがこの部分

takePicture = async function() { 
if (this.camera) { 
    this.camera.takePictureAsync().then(data => { 
    FileSystem.moveAsync({ 
     from: data, 
     to: `${FileSystem.documentDirectory}photos/Photo_${this.state.photoId}.jpg`, 
    }).then(() => { 
     this.setState({ 
     photoId: this.state.photoId + 1, 
     }); 
     Vibration.vibrate(); 
    }); 
    }); 
} 
    }; 

写真を撮っていなかったスナップボタンから来たかなり確信している

[Unhandled Promise rejection: Error: TypeError: expected dynamic type `string', but had type `object'] 

言って警告がさえあります。それは警告expected dynamic type 'string', but had type 'object']で述べている理由

私はコンソールログを行なったし、takePictureAsync()

if (this.camera) { 
    this.camera.takePictureAsync().then(data => console.log(data)); 
} 

ために、次を発見し、これは結果

Object { 
    "height": 1920, 
    "uri":"file:///data/user/0/host.exp.exponent/cache/ExperienceData/%2540lily%252Fmotion/Camera/e501458d-f081-47b5-b7ac-6742f8e8d61e.jpg", 
    "width": 1080, 
} 

であるが、このですか?なぜアプリが写真を撮っていないのだろうか?

もしそうなら、これをどのように修正すればよいですか?

ありがとうございました。

マイpackage.json

"expo": "^22.0.4", 
"native-base": "^2.3.3", 
"react": "16.0.0-beta.5", 
"react-native": "https://github.com/expo/react-native/archive/sdk-22.0.1.tar.gz" 
+0

静的メソッドを使用するのでしょうか? –

+0

@Ishita Sinha私の質問を参照してください。ログを出力するために使用したコードを表示するように編集しました – Ling

+0

'from:data'の代わりに' from:data.uri'を使います。それで全部です。 –

答えて

0

あなたが写真を撮っていたように見えます!今、あなたはちょうどあなたが提供されているコードは、アプリケーション内でローカルにあなたの写真を保存するためにFileSystemを使用している

FileSystem.moveAsync({ 
     from: data, 
     to: `${FileSystem.documentDirectory}photos/Photo_${this.state.photoId}.jpg`, 
    }).then(() => { 
     this.setState({ 
     photoId: this.state.photoId + 1, 
     }); 
     Vibration.vibrate(); 
    }); 

...どこかに保存する必要があります。あなたは、あなたが反応ネイティブCameraRoll APIを使用する必要がありますカメラロールに画像を保存したい場合{documentsDirectory}/photos/Photo_{0}.jpg


:あなたの写真は、このような何かに保存されます。

あなたはログを印刷機能のコードを投稿することができますあなたはawait CameraRoll.saveToCameraRoll(photoUri)

+0

私はアプリケーションの内部に写真を保存する部分を理解していると思いますが、アプリケーションの内部を確認すると、ローカルに保存されている画像はありません。私はそれが単なる警告であるが、それは私が逃した他の部分があるかもしれないことを得る?主にアンドロイドでアプリを実行します – Ling

関連する問題