1

我編寫了在Android上錄製視頻的代碼,我將其上傳到Blobstore,但沒有運氣讓它從Googleappengine上的播放器播放或在網絡上傳輸然而,我可以在下載視頻時閱讀視頻。任何想法 ??我想到了我使用的編碼或視頻格式(.mp4),甚至更多,我發送字節到blobstore的方式。謝謝。使用android錄製的視頻不會在Blobstore上播放

這裏是記錄代碼:

 mCamera = Camera.open();   
    path= Environment.getExternalStorageDirectory().getAbsolutePath().toString(); 

    Date date=new Date(); 
    filename="/rec"+date.toString().replace(" ", "_").replace(":", "_")+".mp4"; 

    //create empty file it must use 
    File file=new File(path,filename); 
    mrec = new MediaRecorder(); 
    mCamera.lock(); 
    mCamera.unlock(); 
    mrec.setCamera(mCamera);  
    mrec.setVideoSource(MediaRecorder.VideoSource.DEFAULT); 
    mrec.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);  
    mrec.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT); 
    mrec.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT); 
    mrec.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 
    mrec.setVideoFrameRate(20); 
    mrec.setPreviewDisplay(surfaceHolder.getSurface()); 
    mrec.setOutputFile(path+filename); 
    mrec.prepare(); 
    mrec.start(); 

這裏是上傳代碼:

HttpClient httpclient = new DefaultHttpClient(); 
httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1); 

//HttpPost httppost = new HttpPost(url); 
HttpPost httppost = new HttpPost(url); 
File file = new File("/sdcard/"+videoName); 

MultipartEntity mpEntity = new MultipartEntity(); 
ContentBody cbFile = new FileBody(file, "video/mp4"); 
mpEntity.addPart("videoFile", cbFile); 

httppost.setEntity(mpEntity); 
System.out.println("executing request " + httppost.getRequestLine()); 
HttpResponse response = httpclient.execute(httppost); 
HttpEntity resEntity = response.getEntity(); 

的「URL」參數是從Blob存儲生成的URL,以上傳媒體文件,我猜blobstore用戶很熟悉它。

+0

發佈您的播放器代碼? –

+0

完成後,我使用我正在使用的代碼編輯帖子 –

回答

0

嘗試使用OutputFormat.MPEG_4,VideoEncoder.H264AudioEncoder.AAC

+0

我嘗試了您建議的修改,但現在Blobstore播放器似乎顯示視頻的長度,但仍然沒有流媒體。我真的需要爲此提供解決方案。看起來代碼沒有問題! –

相關問題