GoogleTv video using VideoView is clipped, even though its in a separate layout of its own
- by MYR
Wrote an application for GoogleTV box to play a video. The video is a separate activity to the main activity.
Wired up a button on my main layout/activity to to start the video activity up (using its own video.xml layout), the video activity loads and starts playing, but the video is clipped, only showing a few centimetres of the bottom. The clipped region looks like the views that occupied the previous layout (main.xml) . The intriguing thing is that if I push the back button, before returning to the main activity the full video frame is shown.
Not sure what I am doing wrong here. Any suggestions welcome.
Code:
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="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/hello_message"
android:layout_width="fill_parent"
android:layout_height="200dp"
android:gravity="center"
android:text="@string/hello_message"
android:textSize="78sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<EditText
android:id="@+id/edit_message"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10"
android:hint="@string/edit_message" >
<requestFocus />
</EditText>
<Button
android:id="@+id/button_send"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="displayMessage"
android:text="@string/button_send" />
<Button
android:id="@+id/button_send_a"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="sendMesssage"
android:text="@string/button_send_a" />
</LinearLayout>
<Button
android:id="@+id/videobutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="startAVideo"
android:text="Video Player" />
</LinearLayout>
GoogleTVExActivity.java (excerpt):
...
public class GoogleTVExActivity extends Activity {
public final static String EXTRA_MESSAGE = "uk.co.bbc.googletvex.MESSAGE";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void displayMessage(View view)
{
TextView t = (TextView)findViewById(R.id.hello_message);
EditText e =(EditText) findViewById(R.id.edit_message);
t.setText(e.getText().toString());
e.setText("");
}
public void sendMesssage(View view)
{
Intent intent = new Intent(this, DisplayMessageActivity.class);
EditText editText = (EditText) findViewById(R.id.edit_message);
String message = editText.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);
}
public void startAVideo(View view)
{
Intent intent = new Intent(this, VideoViewActivity.class);
startActivity(intent);
}
}
video.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<VideoView
android:id="@+id/myvideoview"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>
VideoViewActivity.java (excerpt)
...
import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.widget.MediaController;
import android.widget.VideoView;
public class VideoViewActivity extends Activity {
String SrcPath = "rtsp://v5.cache1.c.youtube.com/CjYLENy73wIaLQnhycnrJQ8qmRMYESARFEIJbXYtZ29vZ2xlSARSBXdhdGNoYPj_hYjnq6uUTQw=/0/0/0/video.3gp";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.video);
VideoView myVideoView = (VideoView)findViewById(R.id.myvideoview);
myVideoView.setVideoURI(Uri.parse(SrcPath));
myVideoView.setMediaController(new MediaController(this));
myVideoView.requestFocus();
myVideoView.start();
}
}