2012-06-26 44 views
0

我有一個攝像頭記錄的意圖,當結果是好的,我嘗試此視頻爲byte []轉換爲發送web服務:錄像爲byte []

Im做這樣的:

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 =新的FileInputStream( videoUri.getPath())

logcat的說我的文件不存在,或補丁心不是propertly。

任何人都有我的問題的例子嗎? 謝謝

+0

您是否驗證過videoUri實際上是一個文件(文件:前綴)而不是「content:」URI? – tiguchi

回答

0

看起來你找不正確的信息。這裏是我使用的相機意圖在我的應用程序:

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

所以也許嘗試連同視頻對象,而不是一個位圖對象類似的規定。 如果這不起作用,您可以嘗試使用.getAbsolutePath()。

是的,它絕對沒有做你認爲它做的事。我運行了我的調試器,getPath返回:/external/images/media/21,這是一個Uri內容。

+0

以及如何從內容uri獲取文件? – rbrlnx