44

私はビデオ プレーヤー アプリケーションに取り組んでい.mp4ます。ネイティブ ビデオ ビューでビデオを再生したいと考えています。URL を使用してビデオを再生できません。「申し訳ありませんが、このビデオは再生できません」というエラーが表示され、ダウンロードしたビデオをネイティブ ビデオ ビューで再生することもできません。

ビデオビューでビデオを再生するための私のコード:

String mUrl = "http://www.servername.com/projects/projectname/videos/1361439400.mp4";

VideoView mVideoView  = (VideoView)findViewById(R.id.videoview)
videoMediaController = new MediaController(this);
mVideoView.setVideoPath(mUrl);
videoMediaController.setMediaPlayer(mVideoView);
mVideoView.setMediaController(videoMediaController);
mVideoView.requestFocus();
mVideoView.start();
4

6 に答える 6

40

最後に、それは私のために働きます。

private VideoView videoView;

videoView = (VideoView) findViewById(R.id.videoView);

Uri video = Uri.parse("http://www.servername.com/projects/projectname/videos/1361439400.mp4");
videoView.setVideoURI(video);
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
  @Override       
  public void onPrepared(MediaPlayer mp) {
       mp.setLooping(true);
       videoView.start();
    }
});
于 2016-05-19T08:06:37.483 に答える
31

MP4 は単なるコンテナーです。その中のビデオとオーディオ ストリームは、両方とも異なる形式でエンコードされます。

Android は、特定の種類の形式のみをネイティブにサポートしています。一覧はこちらです。

ビデオとオーディオのエンコード タイプがサポートされていることを確認します。「mp4」と表示されているからといって、自動的に再生可能になるわけではありません。

于 2013-07-01T08:14:42.950 に答える
22

次のように使用します。

Uri uri = Uri.parse(URL); //Declare your url here.

VideoView mVideoView  = (VideoView)findViewById(R.id.videoview)
mVideoView.setMediaController(new MediaController(this));       
mVideoView.setVideoURI(uri);
mVideoView.requestFocus();
mVideoView.start();

別の方法:

  String LINK = "type_here_the_link";
  VideoView mVideoView  = (VideoView) findViewById(R.id.videoview);
  MediaController mc = new MediaController(this);
  mc.setAnchorView(videoView);
  mc.setMediaPlayer(videoView);
  Uri video = Uri.parse(LINK);
  mVideoView.setMediaController(mc);
  mVideoView.setVideoURI(video);
  mVideoView.start();

このエラーCouldn't open file on client side, try server side Error in Android が発生した場合。また、これを参照してください。これで解決策が得られることを願っています。

于 2013-07-01T14:50:52.663 に答える
6

レンダリングしているビデオの形式を確認してください。mp4 形式のレンダリングは API レベル 11 から開始され、形式は mp4(H.264) である必要があります。

同じ問題が発生しました。フォーマットに到達する前に、ビデオを多くのフォーマットに変換する必要がありました。トータルビデオコンバーターを使用して、ビデオをmp4に変換します。それは魅力のように機能します。

于 2015-11-07T19:43:40.060 に答える
3

それが問題かどうかはわかりませんが、私にとってうまくいったのは、イベントコールバックmVideoView.start(); 内で呼び出すことです。mVideoView.setOnPreparedListener

例えば:

Uri uriVideo = Uri.parse(<your link here>);

MediaController mediaController = new MediaController(mContext);
mediaController.setAnchorView(mVideoView);
mVideoView.setMediaController(mediaController);
mVideoView.setVideoURI(uriVideo);
mVideoView.requestFocus();

mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener()
{
     @Override
     public void onPrepared(MediaPlayer mp)
     {
          mVideoView.start();
     }
});
于 2016-05-14T11:49:44.530 に答える