2016-10-13 10 views
3

sdカードからリモートサーバーにmp4ファイルをアップロードしようとしています。アップロードは正常に終了していますが、VideoViewを使用してURLでファイルを再生しようとしているときに「このビデオを再生できません」と表示されています。この問題は、電話を使用してキャプチャされたビデオの場合にのみ発生しています。もしwatsappフォルダからビデオをアップロードしていれば、何も問題なく正常に動作します。アップロードする前に圧縮する必要がありますか? ここで私はビデオandroidの動画アップロードに関する問題

try { 
        FileInputStream fileInputStream = new FileInputStream(sourceFile); 
        URL url = new URL(my url for upload); 
        conn = (HttpURLConnection) url.openConnection(); 
        conn.setDoInput(true); 
        conn.setDoOutput(true); 
        conn.setUseCaches(false); 
        conn.setRequestMethod("POST"); 
        conn.setRequestProperty("Connection", "Keep-Alive"); 
        conn.setRequestProperty("ENCTYPE", "multipart/form-data"); 
        conn.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary); 
        conn.setRequestProperty("myFile", fileName); 
        video_name = fileName; 
        video_name = fileName.substring(fileName.lastIndexOf("/")+1); 
        dos = new DataOutputStream(conn.getOutputStream()); 

        dos.writeBytes(twoHyphens + boundary + lineEnd); 
        dos.writeBytes("Content-Disposition: form-data; name=\"myFile\";filename=\"" + fileName + "\"" + lineEnd); 
        dos.writeBytes(lineEnd); 

        bytesAvailable = fileInputStream.available(); 
        Log.i("ava", "Initial .available : " + bytesAvailable); 

        bufferSize = Math.min(bytesAvailable, maxBufferSize); 
        buffer = new byte[bufferSize]; 

        bytesRead = fileInputStream.read(buffer, 0, bufferSize); 

        while (bytesRead > 0) { 
         dos.write(buffer, 0, bufferSize); 
         bytesAvailable = fileInputStream.available(); 
         bufferSize = Math.min(bytesAvailable, maxBufferSize); 
         bytesRead = fileInputStream.read(buffer, 0, bufferSize); 
        } 

        dos.writeBytes(lineEnd); 
        dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd); 

        serverResponseCode = conn.getResponseCode(); 
        Content = conn.getResponseMessage(); 

        fileInputStream.close(); 
        dos.flush(); 
        dos.close(); 
       } catch (MalformedURLException ex) { 
        ex.printStackTrace(); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
+0

の作品を願っていますが正常にリモートサーバにその動画のアップロードを検証する必要がありますか? –

+0

@HeshanSandeepaでもブラウザでも再生できます。しかし、いくつかの問題がそこにあるように感じる、時々固執しています。 – Ramees

+0

ここで本当の問題は何ですか? "このビデオを再生できません"または "スタックしましたか?" –

答えて

0

をアップロードするため使用していたコードあなただけのスペースを削除し、

% 20

を設定する必要があるので、あなたのURLがホワイトスペースが含まれているので、はい、それは起こることがあります

のような空白のinsted:=新しいURL(your_url.t

URLをURL1リム()。replace( ""、 "%20"));

は、それはあなたのために

+0

が試行され、動作していません。 – Ramees

+0

それは私のためにうまく動作する私のコードを試してください.. –

0
try { 
      // Start the MediaController 
      MediaController mediacontroller = new MediaController(
        PlayVideoActivity.this); 
      mediacontroller.setAnchorView(videoview); 
      // Get the URL from String VideoURL 
      Uri video = Uri.parse(VideoURL); 
      videoview.setMediaController(mediacontroller); 
      videoview.setVideoURI(video); 

     } catch (Exception e) { 
      Log.e("Error", e.getMessage()); 
      e.printStackTrace(); 
     } 
     videoview.requestFocus(); 
     videoview.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
      // Close the progress bar and play the video 
      public void onPrepared(MediaPlayer mp) { 
       pgDialog.dismiss(); 
       videoview.start(); 
      } 
     }); 
関連する問題