I want to live streaming the video and it is in m3u8 format. So i tried the below code
public class StreamingPlayer extends Activity implements
OnBufferingUpdate
The video was existed in http://www.livestream.com. In this there is Mobile Api for live streaming.
The Api is:
http://www.livestream.com/userguide/index.php?title=Mobile_API#How_to_get_mobile_compatible_clips_from_a_channel.27s_library
In above link there is full information for mobile compatible. To get the rtsp link from the channel to use this link
http://xproshowcasex.channel-api.livestream-api.com/2.0/getstream
Replace the your channel name instead of proshowcase
. And then get all mobile compatible url's like IPhone, Android, Blackberry etc.,
Using that url you can stream the video in Android by using video view or media player.
For more information please read the Mobile Api link.
If any one get the same problem I hope this answer will helps you.
Best of luck.
How to play .M3U8 Streaming in Android
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<VideoView
android:id="@+id/myVideoView"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
Main.java
package com.grexample.ooyalalive;
import java.net.URL;
import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.widget.MediaController;
import android.widget.VideoView;
public class Main extends Activity {
private String urlStream;
private VideoView myVideoView;
private URL url;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_vv);//***************
myVideoView = (VideoView)this.findViewById(R.id.myVideoView);
MediaController mc = new MediaController(this);
myVideoView.setMediaController(mc);
urlStream = "http://jorgesys.net/i/irina_delivery@117489/master.m3u8";
myVideoView.setVideoURI(Uri.parse(urlStream));
}
}
I have seen a lot of people have problems playing .M3U8, it depends on the codecs used for the streaming and compatibility with the device, for example some of my .m3u8 files are only supported in devices with screens of 1200 x800 and higher.
I tried m3u8 video format for more than 6 months and it is not succeeded. It is playing in my iPhone app and native applications. My streaming server is Red5 and it has no RTSP plugin. It gives out RTMP streaming and it could not be streamed in Android. I waited for one year to get an OS having support for RTSP streaming but google haven't. Still I am using a web view with a flash player to stream live video(It has not much clarity). I feel shame to say this to my client and continuing search to play the live stream in Android default player.
I think your video url may not RTSP.
I have no problem to play stream:
videoView1.setVideoPath("http://***.net/livedemo/_definst_/stream3.stream/playlist.m3u8?wowzasessionid=773395207");
videoView1.start();
About the message:
The video cannot be played
Maybe you need to add permissions to your Manifest file:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
Did you try to play your link with native player directly through web browser? If you can not play it with native player, it means that your file is not supported by your current Android version. HTTP Live Streaming format can have some specificities that are not well supported by Android, whereas it can play on IOS.
I think you should move this:
mMediaPlayer.setOnPreparedListener(this);
To be before the call to prepare()