4

我正在尝试通过提供视频的网址来打开视频流。我正在使用VideoView。这是我的代码:

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);        
        VideoView videoView = (VideoView) findViewById(R.id.stream_video_view);
        videoView.setVisibility(View.VISIBLE);
        MediaController mc = new MediaController(this);     
        mc.setAnchorView(videoView);
        mc.setMediaPlayer(videoView);
        videoView.setMediaController(mc);
        Uri uri = Uri.parse("http://172.16.154.106:8080");
        videoView.setVideoURI(uri);
        videoView.requestFocus();
        videoView.start();
    }     
}

日志猫:

01-16 15:58:16.042: D/MediaPlayer(2054): Couldn't open file on client side, trying server side
01-16 15:58:16.078: E/MediaPlayer(2054): Unable to to create media player
01-16 15:58:16.082: W/VideoView(2054): Unable to open content: http://172.16.154.106:8080
01-16 15:58:16.082: W/VideoView(2054): java.io.IOException: setDataSource failed.: status=0x80000000
01-16 15:58:16.082: W/VideoView(2054):  at android.media.MediaPlayer._setDataSource(Native Method)
01-16 15:58:16.082: W/VideoView(2054):  at android.media.MediaPlayer.setDataSource(MediaPlayer.java:844)
01-16 15:58:16.082: W/VideoView(2054):  at android.media.MediaPlayer.setDataSource(MediaPlayer.java:806)
01-16 15:58:16.082: W/VideoView(2054):  at android.widget.VideoView.openVideo(VideoView.java:221)
01-16 15:58:16.082: W/VideoView(2054):  at android.widget.VideoView.access$2000(VideoView.java:49)
01-16 15:58:16.082: W/VideoView(2054):  at android.widget.VideoView$6.surfaceCreated(VideoView.java:465)
01-16 15:58:16.082: W/VideoView(2054):  at android.view.SurfaceView.updateWindow(SurfaceView.java:562)
01-16 15:58:16.082: W/VideoView(2054):  at android.view.SurfaceView.access$000(SurfaceView.java:82)
01-16 15:58:16.082: W/VideoView(2054):  at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:171)
01-16 15:58:16.082: W/VideoView(2054):  at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:590)
01-16 15:58:16.082: W/VideoView(2054):  at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1596)
01-16 15:58:16.082: W/VideoView(2054):  at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2418)
01-16 15:58:16.082: W/VideoView(2054):  at android.os.Handler.dispatchMessage(Handler.java:99)
01-16 15:58:16.082: W/VideoView(2054):  at android.os.Looper.loop(Looper.java:137)
01-16 15:58:16.082: W/VideoView(2054):  at android.app.ActivityThread.main(ActivityThread.java:4340)
01-16 15:58:16.082: W/VideoView(2054):  at java.lang.reflect.Method.invokeNative(Native Method)
01-16 15:58:16.082: W/VideoView(2054):  at java.lang.reflect.Method.invoke(Method.java:511)
01-16 15:58:16.082: W/VideoView(2054):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
01-16 15:58:16.082: W/VideoView(2054):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
01-16 15:58:16.082: W/VideoView(2054):  at dalvik.system.NativeStart.main(Native Method)
01-16 15:58:16.082: D/VideoView(2054): Error: 1,0
01-16 15:58:16.232: D/gralloc_goldfish(2054): Emulator without GPU emulation detected.

在执行此操作时,我没有收到任何错误,但我收到一个标题为“无法播放视频”和消息“抱歉,无法播放此视频”的对话框。任何想法为什么我的代码不起作用?

4

2 回答 2

15

首先检查您是否在清单中添加了 INTERNET 权限。

接下来检查您的视频格式的扩展名是什么。

链接显示了 Android 手机和平板电脑支持的文件,并提供了编解码器和文件扩展名信息。但是,Android 应用程序可以使用任何支持 Android 的设备提供的媒体编解码器,也可以使用第三方公司开发的其他媒体编解码器。因此,如果您想在 Android 上播放视频,请找到多格式视频播放器或将视频转换为 Android 兼容格式。

请参阅此 Android 支持的媒体格式链接

于 2013-01-16T09:26:52.057 回答
0

更改您的网址:

http://172.16.154.106:8080

至 :

http://172.16.154.106:8080/

如果android设备支持这种格式就可以了。

于 2013-01-16T09:35:28.590 回答