Im trying to make an android application with live video streaming but whenever the related activity (this one) opens, it doesnt show anything except a blank screen. Can anyone please help me?
package guc.edu.iremote;
import android.app.Activity;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.net.Uri;
import android.os.Bundle;
import android.os.PowerManager;
import android.os.PowerManager.WakeLock;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.Window;
import android.view.WindowManager;
import android.widget.MediaController;
import android.widget.VideoView;
public class Video extends Activity implements OnTouchListener{
VideoView videoView;
int stopPosition;
boolean touched;
protected WakeLock mWakeLock;
Dialog dialog;
@SuppressWarnings("deprecation")
public void OnCreate(Bundle b) {
super.onCreate(b);
this.setContentView(R.layout.video);
videoView = (VideoView) findViewById(R.id.videoView1);
PowerManager lPwrMgr = (PowerManager) getSystemService(POWER_SERVICE);
mWakeLock = lPwrMgr.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "Video");
mWakeLock.acquire();
videoView.setVisibility(View.VISIBLE);
MediaController mc = new MediaController(this){
@Override
public void hide() {
this.show(0);
}
@Override
public void setMediaPlayer(MediaPlayerControl player) {
super.setMediaPlayer(player);
this.show();
}
};
videoView.setMediaController(mc);
mc.setAnchorView(videoView);
dialog = ProgressDialog.show(Video.this, "", "Loading...",
true);
new Thread(new Runnable() {
public void run() {
String str = "rtsp://v4.cache2.c.youtube.com/"+
"CkELENy73wIaOAng93Xa-"+
"iQH5xMYESARFEIJbXYtZ29vZ2xlSARSBXdhdGNoWglDbGlja0xpbmtgg9fFkeTLublGDA==/"+
"0/0/0/video.3gp";
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
Uri uri = Uri.parse(str);
videoView.setVideoURI(uri);
videoView.setOnTouchListener(this);
videoView.requestFocus();
videoView.setZOrderOnTop(false);
videoView.start();
dialog.dismiss();
}
}).start();
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
//videoView.seekTo(stopPosition);
//videoView.resume();
}
protected void onPause() {
super.onPause();
if (videoView != null) {
stopPosition = videoView.getCurrentPosition();
videoView.pause();
}
}
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
if(v==videoView)
{
System.out.println("touched");
if(!touched)
{
onPause();
touched = true;
}
else
onResume();
touched = false;
}
return false;
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
// release wake-lock
if(mWakeLock != null){
mWakeLock.release();
}
}
}
AND THIS is for the XML
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<VideoView
android:id="@+id/videoView1"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
what is that link:
rtsp://v4.cache2.c.youtube.com/CkELENy73wIaOAng93Xa-iQH5xMYESARFEIJbXYtZ29vZ2xlSARSBXdhdGNoWglDbGlja0xpbmtgg9fFkeTLublGDA==/0/0/0/video.3gp
?
it doesn’t seem to work. should maybe fix that link if it’s broken and then try it. But… to verify that this is the problem, can you replace it with the link to another video file that is working? (let me know if you need some, but google can provide a ton 🙂
EDIT
as the other guy (earlier other answer) commented, you also need to access your UI in the mainthread, and not in background thread. so you should post to UI thread like:
where
ctxis a reference to your current activity.