android - 从 URL 在 VideoView Android 中查找时出错

标签 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);

谁能告诉我这里出了什么问题。

最佳答案

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

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>

关于android - 从 URL 在 VideoView Android 中查找时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31742294/

相关文章:

android - 应用在启动时崩溃-android.view.InflateException:二进制XML文件行#0:二进制XML

audio - 点对点通信的最大音频/视频延迟

java - 如何创建youtube格式的媒体播放器?

android - 如何获取型号为 GT-I9300 的三星 Galaxy SIII 的 OEM USB 驱动程序

android - 使用带有 'Hello World' 的 JSON 作为示例

android - 在 Android 中接收和解码 H.264 直播流

c++ - 如何在不将单独的帧图像写入磁盘的情况下从 C++ 程序中生成的多个图像中编码视频?

android - Androids MediaPlayer onErrorListener MEDIA_ERROR_SERVER_DIED出现问题

java - 在 Android 的 onCompletion 方法中取消 MediaPlayer 不起作用

android - 如何在 appBarLayout 上方设置 CardView 小部件?