如何在Android中播放来自URL的流媒体视频?

问题描述 投票:2回答:3

我想从网站上播放Android中的流媒体视频。

例如,我想播放来自此网址的流媒体视频:http://florotv.com/canal2.html

使用URL Helper,我已经能够捕获它的rtmp URL

rtmp://198.144.153.139:443/kuyo<playpath>ver44?id=acf6f5271f8ce567ed6c8737ce85a044&pid=32342e3136362e37332e323139 <swfUrl>http://yukons.net/yplay2.swf <pageUrl>http://yukons.net/embed/37363635373233343334/eeff74c57593ca38defc902fa6d88005/600/400

现在我有了这个URL,我想知道是否可以在android中播放视频。

我试过这个,但它不起作用,因为我不知道如何设置swfUrl,pageUrl .....

private static final String MOVIE_URL="rtmp://198.144.153.139:443/kuyo";
Intent intent = new Intent(android.content.Intent.ACTION_VIEW);
Uri data = Uri.parse(MOVIE_URL);
intent.setData(data);
startActivity(intent);

提前致谢....

android video video-streaming rtmp
3个回答
0
投票

我认为只创建一个intent就不够了,你还必须为要播放的视频创建一个上下文:就像一个VideoView对象。

下面的链接提出了这种模式的建议:http://androidcodeexamples.blogspot.sg/2011/08/how-to-play-mp4-video-in-android-using.html

本质上,MediaController对象是使用VideoView对象创建的。然后,一旦设置了URI,VideoView就用于启动操作。

编辑:可能主要问题是您的URL包含POST参数,并不完全是资源的唯一标识符(在本例中是视频文件)。

'swfUrl'和'pageUrl'参数很可能是为您提供页面的服务器所独有的。


0
投票

您可以在android中使用Vitamio库,您可以在其中设置swfUrl和pageUrl。

这是一个tutorial


0
投票

将以下代码添加到Activity.java文件中。

protected void onCreate(Bundle savedInstanceState)
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.videoPlayer);
try {        
    String link="http://videocloud/video.mp4";
    VideoView videoView = (VideoView) findViewById(R.id.myVideoView);
    final ProgressBar pbLoading = (ProgressBar) findViewById(R.id.pbVideoLoading);
    pbLoading.setVisibility(View.VISIBLE);
    MediaController mediaController = new MediaController(this);
    mediaController.setAnchorView(videoView);
    Uri video = Uri.parse(link);
    videoView.setMediaController(mediaController);
    videoView.setVideoURI(video);
    videoView.start();
    videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                        @Override
                        public void onPrepared(MediaPlayer mp) {
                            pbLoading.setVisibility(View.GONE);
                        }
    });
} catch (Exception e) {
    // TODO: handle exception
    Toast.makeText(this, "Error connecting", Toast.LENGTH_SHORT).show();
}

}

如果您不需要MediaController将其设置为null videoView.setMediaController(null)

© www.soinside.com 2019 - 2024. All rights reserved.