Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 视频视图上的AVI/MP4_Android_Video_Android Videoview_Mp4_Avi - Fatal编程技术网

Android 视频视图上的AVI/MP4

Android 视频视图上的AVI/MP4,android,video,android-videoview,mp4,avi,Android,Video,Android Videoview,Mp4,Avi,我正在尝试在我的应用程序的videoview上运行avi/mp4视频,但当应用程序打开时无法播放此视频,我正在手机上测试 videoView = (VideoView)findViewById(R.id.videoView); MediaController mediaController = new MediaController(this); mediaController.setAnchorView(videoView); videoView.setMediaController(medi

我正在尝试在我的应用程序的videoview上运行avi/mp4视频,但当应用程序打开时无法播放此视频,我正在手机上测试

videoView = (VideoView)findViewById(R.id.videoView);
MediaController mediaController = new MediaController(this);
mediaController.setAnchorView(videoView);
videoView.setMediaController(mediaController);
videoView.setVideoPath("/sdcard/"+file);
videoView.start();
日志:

03-28 20:52:30.723    8474-8474/mjksites.loopvideo D/MediaPlayer﹕ getMetadata
03-28 20:52:30.842    8474-8491/mjksites.loopvideo W/MediaPlayer﹕ info/warning (3, 0)
03-28 20:52:32.530    8474-8490/mjksites.loopvideo E/MediaPlayer﹕ error (1, -1004)
03-28 20:52:32.538    8474-8474/mjksites.loopvideo E/MediaPlayer﹕ Error (1,-1004)
03-28 20:52:32.538    8474-8474/mjksites.loopvideo D/VideoView﹕ Error: 1,-1004

Android不支持AVI视频容器格式-当您尝试播放不支持的视频格式时,您看到的消息是正常的消息

有关受支持格式的最新列表,请参见此处:

请注意,您说您正在尝试播放“avi/mp4”视频-这是不寻常的,因为avi和mp4是可选的视频容器,所以视频通常是一种格式或其他格式

最新答案

好的-我已经查看了下面评论中发布的视频,它肯定会在安卓4.4.2设备上播放

以下代码在播放视频时起作用,可能有助于在应用程序中尝试更新以使用您自己的视图id、视频路径等。它用于片段,但如果是您的用例,您可以将其更改为活动:

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    rootView = inflater.inflate(R.layout.fragment_item_detail, container, false);

    //Create the video player and set the video path
    videoPlayerView = (VideoView) rootView.findViewById(R.id.video_area);
    if (videoPlayerView == null) {
        Log.d("ItemDetailFragment","onCreateView: videoPlayerView is null");
        return null;
    }

    //Set the video path and make sure the first frame is shown instead of a black screen
    videoPlayerView.setVideoPath(selectedVideoItem.videoPath); 
    videoPlayerView.seekTo(100);

    //Set the MediaController (the video control bar) to match the size of the VideoView - this trick 
    //from a StackOverflow answer makes sure it is sized correctly, calling setAnchroView after the
    //Video is actually loaded and hence knows it right sze.
    final Context mContext = this.getActivity();
    videoPlayerView.setOnPreparedListener(new OnPreparedListener() {
        @Override
        public void onPrepared(MediaPlayer mp) {
            //Add a listener for the size change to correctly set the controls
            mp.setOnVideoSizeChangedListener(new OnVideoSizeChangedListener() { 
                @Override
                public void onVideoSizeChanged(MediaPlayer mp, int width, int height) {
                    //Add Media Controller and set its position on the screen.
                    mediaController = new MediaController(mContext);
                    videoPlayerView.setMediaController(mediaController);
                    mediaController.setAnchorView(videoPlayerView);
                }
            });
        }
    });

    return rootView;
}
此外,请确保您的应用程序具有读取外部存储的权限,因为媒体播放器错误有时是由潜在问题引起的,并且没有得到很好的报告。您的清单中应包含以下行:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

我指的是AVI或MP4视频,而不是两种格式的视频。AVI会给出错误消息,但使用MP4“contaner”的视频应该播放,只要它们与上面链接中的细节匹配。需要检查的一件事是视频的“配置文件”——它是受支持的基线,还是其他东西,例如主线,它不包括在链接列表中。如果您能够共享不播放的mp4视频,这将有所帮助。作为旁白,您是否检查了视频的路径是否正确?我不确定上面的一个是否真的会进入我使用过的设备上的SD卡。保存在SD卡上的视频的通常路径是:Environment.getExternalStorageDirectory+videoFileName;这是视频:,这很有趣,因为当我把url放在播放中时,它可以正确播放,但当我下载电影并尝试播放时,却无法正常播放。不幸的是,我必须在0.03-29 20:34:23.159 15295-15312/mjksites.loopvideo W/MediaPlayer之前下载视频﹕ 信息/警告3,0 03-29 20:34:27.215 15295-15312/mjksites.loop视频E/MediaPlayer﹕ 错误1,-1004 03-29 20:34:27.218 15295-15295/mjksite.loop视频E/MediaPlayer﹕ 错误1,-1004 03-29 20:34:27.218 15295-15295/mjksite.loopvideo D/VideoView﹕ 错误:1,-1004 03-29 20:34:55.651 15295-15295/mjksites.loopvideo D/MediaPlayer﹕ getMetadata 03-29 20:34:55.703 15295-15312/mjksites.loopvideo W/MediaPlayer﹕ 信息/警告3,0