2013-12-16 58 views
7

私のアプリケーションでビデオを再生しようとしています。このビデオを再生できません。エラー。私はこれに関して多くのスレッドを見てきました。彼らは、プレイヤーが準備されたらビデオを開始するように頼んだ。私も同じことをしています。しかし、問題を理解することはできませんでした。以下の私のコードを見つけてください。Android VideoView特に.mp4ビデオを再生できません

public class Video extends Activity implements MediaPlayer.OnPreparedListener, MediaPlayer.OnErrorListener { 

public VideoView vidPlayer; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 

    setup(); 
    activateVideoPlayer(); 
} 

public void setup() { 
    setContentView(R.layout.step_video);   
    vidPlayer = (VideoView) findViewById(R.id.videoPlayer); 
    String playableUrl = "http://teststreaming7v.s3.amazonaws.com/public/7515/1374782317346-beagle_puppy_howl_640x360_448_main.mp4"; 

} 

@Override 
public void onPrepared(final MediaPlayer mediaPlayer) { 
    mediaPlayer.setLooping(false); 
    mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 
     startPlayer(); 
    videoLoaded = true; 
    mediaPlayer.setOnBufferingUpdateListener(new MediaPlayer.OnBufferingUpdateListener() { 
     // show updated information about the buffering progress 
     public void onBufferingUpdate(MediaPlayer mp, int percent) { 
      Log.d(this.getClass().getName(), "percent: " + percent); 

     } 
    }); 

    mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 

     public void onCompletion(MediaPlayer mediaPlayer) { 
      progress.setProgress(100); 
        setResult(Activity.RESULT_OK); 
        finish(); 
     } 
    }); 

    readyToPlay = true; 
} 

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 
} 

@Override 
public void onPause() { 
    super.onPause(); 
    pausePlayer(); 
} 

@Override 
public void finish() { 
    super.finish(); 
    overridePendingTransition(R.anim.engagement_fade_in, R.anim.engagement_fade_out); 
} 

@Override 
public void onBackPressed() { 
    isGoingBack = true; 
    setResult(Activity.RESULT_CANCELED); 
    finish(); 
} 

@Override 
public boolean onError(MediaPlayer mediaPlayer, int i, int i1) { 
    JLogger.getInstance(this).log("Video Player Error!!" + Integer.toString(i) + "/" + Integer.toString(i1)); 

    return false; 
} 

public void startPlayer() { 
    isPaused = false; 
    vidPlayer.start(); 
} 

public void pausePlayer() { 
    isPaused = true; 
     vidPlayer.pause(); 
} 

private void activateVideoPlayer() { 
    vidPlayer.setOnErrorListener(this); 
    vidPlayer.setOnPreparedListener(this); 

    btnPlay.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      if (vidPlayer.isPlaying()) { 
       pausePlayer(); 
      } else { 
       startPlayer(); 
      } 
     } 
    }); 

    vidPlayer.setVideoURI(Uri.parse(playableUrl)); 
    vidPlayer.seekTo(step.resumePosition); 
} 
} 

私が使用しているデバイスはMotorola Atrix - Android 4.1.2 - Unlockedです。 Nexus 4,5、Samasung Tab 2などの他のデバイスでも試しました。私は最初のものは果たしていると第二のうち、以下の二つの.mp4ファイルを再生しようとした1

にはない

12-16 13:42:35.184 4427-4427/? D/MediaPlayer﹕ Couldn't open file on client side,trying server side 
12-16 13:42:35.184 1417-1830/? I/AwesomePlayer﹕ setDataSource_l('http://teststreaming7v.s3.amazonaws.com/public/7515/1374782317346-beagle_puppy_howl_640x360_448_main.mp4') 
12-16 13:42:35.184 1417-5481/? V/ChromiumHTTPDataSource﹕ connect on behalf of uid 10069 
12-16 13:42:35.184 1417-5481/? I/ChromiumHTTPDataSource﹕ connect to http://teststreaming7v.s3.amazonaws.com/public/7515/1374782317346-beagle_puppy_howl_640x360_448_main.mp4 @0 
12-16 13:42:35.684 1424-1673/? I/﹕ odm_disp_esd_thread is running(467) state=1 
12-16 13:42:35.684 1417-5481/? W/WVMExtractor﹕ Failed to open libwvm.so 
12-16 13:42:36.184 4547-4576/? W/GAV2﹕ Thread[GAThread,5,main]: Exception sending hit: HttpHostConnectException 
12-16 13:42:36.184 4547-4576/? W/GAV2﹕ Thread[GAThread,5,main]: Connection to https://ssl.google-analytics.com refused 
12-16 13:42:36.184 1417-5481/? E/OMXCodec﹕ failed to allocate node OMX.Nvidia.h264.decode 
12-16 13:42:36.184 1417-5481/? E/OMXCodec﹕ failed to allocate node OMX.google.h264.decode 
12-16 13:42:36.184 1417-5481/? I/OMXCodec﹕ [OMX.google.h264.decoder] AVC profile = 77 (Main), level = 22 
12-16 13:42:36.184 1417-5481/? I/OMXCodec﹕ [OMX.google.h264.decoder] video dimensions are 320 x 240 
12-16 13:42:36.184 1417-5481/? I/OMXCodec﹕ [OMX.google.h264.decoder] Crop rect is 320 x 240 @ (0, 0) 
12-16 13:42:37.184 4427-4427/? D/MediaPlayer﹕ getMetadata 
12-16 13:42:37.184 4427-4427/? D/VideoSample﹕ onPrepared() method 
12-16 13:42:37.184 1417-1687/? D/AudioHardwareMot﹕ bufSize = 8192 
12-16 13:42:37.184 1417-5484/? E/SoftAVC﹕ Decoder failed: -2 
12-16 13:42:37.184 1417-5485/? E/OMXCodec﹕ [OMX.google.h264.decoder] ERROR(0x80001001, -1007) 
12-16 13:42:37.184 1417-5486/? I/SoftAAC2﹕ Reconfiguring decoder: 44100 Hz, 2 channels 
12-16 13:42:37.184 4427-4449/? E/MediaPlayer﹕ error (1, -2147483648) 
12-16 13:42:37.184 1692-2165/? D/dalvikvm﹕ GC_EXPLICIT freed 113K, 39% free 8906K/14467K, paused 3ms+5ms, total 93ms 
12-16 13:42:37.184 4427-4427/? E/MediaPlayer﹕ start called in state 0 
12-16 13:42:37.184 4427-4427/? E/MediaPlayer﹕ error (-38, 0) 
12-16 13:42:37.184 4427-4427/? E/MediaPlayer﹕ Error (1,-2147483648) 
12-16 13:42:37.184 4427-4427/? D/VideoView﹕ Error: 1,-2147483648 
12-16 13:42:37.184 4427-4427/? D/VideoSample﹕ VideoSample: Video Player Error!!1/-2147483648 
12-16 13:42:37.184 4427-4427/? D/VideoSample﹕ VideoSample: Get url: http://teststreaming7v.s3.amazonaws.com/public/7515/1374782317346-beagle_puppy_howl_640x360_448_main.mp4 
12-16 13:42:37.184 4427-4427/? E/MediaPlayer﹕ Error (-38,0) 
12-16 13:42:37.184 4427-4427/? D/VideoView﹕ Error: -38,0 
12-16 13:42:37.184 4427-4427/? D/VideoSample﹕ VideoSample: Video Player Error!!-38/0 
12-16 13:42:37.184 4427-4427/? D/VideoSample﹕ VideoSample: Get url: http://teststreaming7v.s3.amazonaws.com/public/7515/1374782317346-beagle_puppy_howl_640x360_448_main.mp4` 

EDIT:

は、これが私のログです。

ビデオ1プロパティ
URL:Video URL
ビデオビットレート:179.9キロビット/秒
オーディオチャンネル:ステレオ

Video1

ビデオ2つのプロパティ URL:Video URL
ビデオビットレート:446.9キロビット/秒
オーディオチャンネル:モノラル

Video2

+0

おそらくmoovアトムがファイルの先頭にないため、 – njzk2

+0

@ njzk2は、これをネクサス4や5やsamsungのタブレットなどの他のデバイスで同じ動画を再生することに影響しませんか?私はmoov原子や他の関連するトピックに精通していない。申し訳ありませんが間違った質問を愚かに尋ねる場合。私の2番目のビデオは、Motorola AtrixとLG Optimusだけで再生されません。これらは私がチェックした装置です。 – Uma

+0

は完全にはわかりませんが、あなたの意見は理にかなっています。 – njzk2

答えて

8

問題は、2番目のビデオがH.264 AVC Baselineプロファイルにないことでした。

+0

このgstreamerパイプラインでこのようなmp4ビデオを生成できました: 'gst-launch-0.10 -e videotestsrc num-buffers = 1000! x264enc qp-min = 18!ビデオ/ x-h264、ストリームフォーマット= avc、プロファイル=制約ベースライン! qtmux!ファイルリンク場所= test.mp4' – jcarballo

2

私はまた、MP4の動画で、この問題を持っていた人を知っています、問題はコード上ではなく、動画自体にあった、フレーム数/秒について何か、他の動画を試してみてください、あなたが完全に作られたことを知っているもの

+0

私は以前にvideoviewを使ったことがありませんでしたので、これらの命題を見てみるといいでしょう:http://stackoverflow.com/questions/17399351/how-to-play-mp4-video-in-videoview-in-android –

+0

問題ビデオエンコーディングを使用していました。ありがとう、スポットライトのおかげで... – Uma

関連する問題