Android VideoView无法在sdk 4.3

时间:2016-04-30 04:47:14

标签: android android-videoview

我正试图在VideoView上播放来自设备的视频。这是我的代码:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    vView = (VideoView) findViewById(R.id.videoView);
    mc = new MediaController(this);
    vView.setMediaController(mc);
    String new_emulator_path = "/storage/emulated/0/Download/testvid.mp4";
    Uri uri = Uri.parse(new_emulator_path);
    vView.setVideoURI(uri);
    vView.requestFocus();
    mc.show();
    vView.start();
}

...

<VideoView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/videoView"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true"
    android:adjustViewBounds="true" />

在5.1上使用相同的代码时,它可以正常播放,但在4.3及以下版本中无法播放。以下是日志提取:

04-30 00:28:09.141 2293-2293/com.ebook.video D/MediaPlayer: getMetadata
04-30 00:28:09.249 2293-2314/com.ebook.video E/MediaPlayer: error (1, -2147483648)
04-30 00:28:09.257 2293-2293/com.ebook.video E/MediaPlayer: Error (1,-2147483648)
04-30 00:28:09.257 2293-2293/com.ebook.video D/VideoView: Error: 1,-2147483648

我已经看到很多关于此错误代码的线程,但无法理解任何解释。

编辑:我尝试过播放不同格式的视频 - mkv(H264 mpeg-4 AVC),3gp(H263),mp4(H264 mpeg-4 AVC),flv(FLV1)。具有3gp扩展名和H263格式的视频播放正常,而其他人则提供如上所述的错误消息。关于如何解决这个问题的任何想法?

1 个答案:

答案 0 :(得分:0)

根据Documentation Android在Android 5.1之前不支持H265 所以我认为你有这个问题。您可以使用ExoPlayer(或更好的方式ExoMedia围绕VideoPlayer和ExoPlayer进行简单包装。

BTW使用以下代码可以帮助您:

VideoView videoView = (VideoView) findViewById(R.id.videoView1);
videoView.setVideoPath(YOUR_LOCAL_FILE_PATH);
MediaController mediaController = new MediaController(this);
mediaController.setAnchorView(videoView);
videoView.setMediaController(mediaController);
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener()  {
         @Override
         public void onPrepared(MediaPlayer mp) {
                    Log.i(TAG,"Hoooray");
                 }
         });

videoView.start();

我从您的代码中发现您想在模拟器中显示视频,因此请先查看this相关帖子。