0

私はカメラ レコードの意図を持っています。結果が OK の場合、このビデオをバイト [] に変換して Web サービスを送信しようとします。

私はこれをやっています:

if (resultCode == RESULT_OK) {
                    // Video guardado
                    videoUri = data.getData();
                    if (videoUri != null) {

                        ByteArrayOutputStream out = new ByteArrayOutputStream();
                        FileInputStream fichero_codificar = null;
                        try {

                            fichero_codificar = new FileInputStream(
                                    videoUri.getPath());

                            byte[] buf = new byte[1024];
                            int n;
                            while (-1 != (n = fichero_codificar.read(buf))) {
                                out.write(buf, 0, n);
                            }
                            byte[] videoByte = out.toByteArray();
                            strBase64 = Base64.encode(videoByte);
                        } catch (FileNotFoundException e) {
                            e.printStackTrace();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }

しかし、 fichero_codificar = new FileInputStream( videoUri.getPath()) では

logcat は、ファイルが存在しないか、パッチが正しくないと言います。

誰でも私の質問の例を教えてください。ありがとう

4

1 に答える 1

0

情報を間違って見つけているようです。アプリケーションで Camera インテントを使用した方法は次のとおりです。

                thumbnail = (Bitmap) data.getExtras().get("data");  
            try {

                FileOutputStream out = new FileOutputStream(getPicName(index));
                thumbnail.compress(Bitmap.CompressFormat.PNG, 90, out);
            } catch (Exception e) {
                e.printStackTrace();
            }

したがって、Bitmap オブジェクトではなく Video オブジェクトを使用して、これらの線に沿って何かを試してみてください。 それでもうまくいかない場合は、代わりに .getAbsolutePath() を試すことができます。

ええ、それは間違いなくあなたが思っていることをしていません。私は自分でデバッガーを実行し、getPath が this:/external/images/media/21を返しました。これはコンテンツ Uri です。

于 2012-06-26T16:55:26.027 に答える