4

I'm trying to open video stream by giving the url of the video. I'm using VideoView.Here is my code:

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();
    }     
}

LogCat:

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.

On executing this, I'm not getting any error but I'm getting a dialog box with title "cannot play video" and with message "Sorry, this video can't be played". Any ideas why my code is not working?

4

2 に答える 2

15

まず、マニフェストにインターネット権限が追加されていることを確認します。

次に、ビデオ形式の拡張子が何であるかを確認します。

このリンクは、Android搭載の携帯電話とタブレットがサポートするファイルを示しており、コーデックとファイル名の両方の拡張子情報が提供されています。ただし、Androidアプリケーションは、Android搭載デバイスによって提供されるメディアコーデック、またはサードパーティ企業によって開発された追加のメディアコーデックのいずれかを使用できます。したがって、Androidでビデオを再生する場合は、マルチフォーマットのビデオプレーヤーを見つけるか、ビデオをAndroid互換フォーマットに変換してください。

このAndroidでサポートされているメディアフォーマットのリンクを参照してください。

于 2013-01-16T09:26:52.057 に答える
0

Change your URL from :

http://172.16.154.106:8080

To :

http://172.16.154.106:8080/

If android device supports this format than it will be ok.

于 2013-01-16T09:35:28.590 に答える