从网址

时间:2015-07-31 09:08:09

标签: android video media-player

当我开始播放视频时,我没有遇到任何问题,但当我寻找一个没有缓冲的位置时,视频播放停止并向我显示一个错误的对话框。

logcat跟踪是这样的:

07-31 10:51:23.163      189-846/? D/audio_hw_primary﹕ out_set_parameters: enter: usecase(1: low-latency-playback) kvpairs: routing=2
07-31 10:51:23.188    189-29871/? E/﹕ not in avi mode
07-31 10:51:23.191    189-29871/? E/﹕ not in avi mode
07-31 10:51:23.207  22651-22668/? W/MediaPlayer﹕ info/warning (3, 0)
07-31 10:51:23.901      746-819/? I/art﹕ Explicit concurrent mark sweep GC freed 70558(4MB) AllocSpace objects, 3(48KB) LOS objects, 24% free, 48MB/64MB, paused 2.201ms total 146.600ms
07-31 10:51:24.354    189-13848/? D/NuPlayerDriver﹕ seekTo(0xb1ffd340) 1325959 ms
07-31 10:51:24.442    189-29844/? I/NuCachedSource2﹕ new range: offset= 136309244
07-31 10:51:24.952      189-846/? I/AudioFlinger﹕ BUFFER TIMEOUT: remove(4097) from active list on thread 0xb5a06000
07-31 10:51:25.005    189-29832/? E/MPEG4Extractor﹕ Video is malformed
07-31 10:51:25.161    189-29846/? I/NuPlayerDecoder﹕ [OMX.qcom.video.decoder.avc] resubmitting CSD
07-31 10:51:25.161    189-29848/? I/NuPlayerDecoder﹕ [OMX.google.aac.decoder] resubmitting CSD
07-31 10:51:25.161    189-29831/? I/NuPlayer﹕ buffer low, pausing...
07-31 10:51:25.162    189-29851/? I/SoftAAC2﹕ Initially configuring decoder: 44100 Hz, 2 channels
07-31 10:51:25.163    189-29846/? I/NuPlayerDecoder﹕ [OMX.qcom.video.decoder.avc] resubmitting CSD
07-31 10:51:25.165    189-29871/? E/﹕ not in avi mode
07-31 10:51:25.166    189-29832/? E/MPEG4Extractor﹕ Video is malformed
07-31 10:51:25.166    189-29851/? W/SoftAAC2﹕ aacDecoder_DecodeFrame decoderErr = 0x4002
07-31 10:51:25.166    189-29851/? W/SoftAAC2﹕ AAC decoder returned error 0x4002, substituting silence
07-31 10:51:25.168  22651-22668/? W/MediaPlayer﹕ info/warning (703, 0)
07-31 10:51:25.168    189-29846/? E/NuPlayerDecoder﹕ Stream error for OMX.qcom.video.decoder.avc (err=-1007), EOS successfully queued
07-31 10:51:25.168    189-29871/? E/﹕ not in avi mode
07-31 10:51:25.169    189-29831/? E/NuPlayer﹕ received error(0xfffffc11) from video decoder, flushing(0), now shutting down
07-31 10:51:25.171  22651-22668/? W/MediaPlayer﹕ info/warning (701, 0)
07-31 10:51:25.171  22651-22668/? E/MediaPlayer﹕ error (1, -1007)
07-31 10:51:25.171  22651-22651/? E/MediaPlayer﹕ Error (1,-1007)
07-31 10:51:25.171  22651-22651/? D/VideoView﹕ Error: 1,-1007

视频网址是这样的: http://nws.nice264.com/vod/pcat/android_800k_228p/9f8058833cf4532cf262.mp4

我的代码就是这样:

        VideoView video;
        Uri vidUri = Uri.parse(videoUrl);
        video.setVideoURI(vidUri);
        video.start();
        MediaController vidControl = new MediaController(this);
        vidControl.setAnchorView(video);
        video.setMediaController(vidControl);

有谁能说我这里有什么不对。

2 个答案:

答案 0 :(得分:1)

这是我的工作代码,我可以毫无错误地寻找任何职位。可能它可以帮助你。

public void playvideo(final String videopath, final VideoView v,
        final ProgressBar progressBar) {
    Log.e("path is", "" + videopath);
    try {

        Uri video = Uri.parse(videopath);

        v.setVideoURI(video);

        v.setOnPreparedListener(new OnPreparedListener() {

            public void onPrepared(MediaPlayer mp) {

                mp.setOnVideoSizeChangedListener(new OnVideoSizeChangedListener() {

                    @Override
                    public void onVideoSizeChanged(MediaPlayer mp,
                            int width, int height) {
                        mediaController = new MediaController(MugshotVideoPlayer.this);
                        v.setMediaController(mediaController);
                        mediaController.setAnchorView(v);
                    }
                });
                progressBar.setVisibility(View.GONE);
                v.setVisibility(View.VISIBLE);

                v.start();
            }

        });

    } catch (Exception e) {
        // progressBar.setVisibility(View.GONE);
        System.out.println("Video Play Error :" + e.getMessage());
    }

}

这是我的xml文件:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" 
android:gravity="center">
<VideoView
    android:layout_gravity="center"
    android:id="@+id/videoIntruder"
    android:layout_width="240dp"
    android:layout_height="320dp" >
</VideoView>

<ProgressBar
    android:layout_gravity="center"
    android:id="@+id/progressBar"
    style="?android:attr/progressBarStyleLarge"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
</FrameLayout>

答案 1 :(得分:0)

我在您的日志中看到Video is malformed。这意味着您服务器上的视频格式错误且已损坏。