2012-06-29 1 views
0

비디오를 재생할 GoogleTV 용 애플리케이션을 작성했습니다. 비디오는 주 활동과는 별도의 활동입니다. 기본 레이아웃/활동의 버튼을 눌러 비디오 활동을 시작하고 (자체 video.xml 레이아웃 사용) 비디오 활동이로드되어 재생되기 시작하지만 비디오는 잘립니다. 단지 몇 센티미터 밖에 보이지 않습니다 . 클리핑 된 영역은 이전 레이아웃 (main.xml)을 차지한 뷰와 유사합니다. 흥미로운 점은 뒤로 버튼을 누르면 주 활동으로 돌아 가기 전에 전체 비디오 프레임이 표시된다는 것입니다. 내가 여기서 뭘 잘못하고 있는지 확실하지 않습니다. 어떤 제안이라도 환영합니다.VideoView를 사용하는 GoogleTv 비디오는 자체 레이아웃인데도 불구하고 잘립니다.

코드 : 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 (발췌) :

... 
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 (발췌)

... 

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

} 

답변

1

VideoViewActivity가 전체 화면 즉, 전체 화면인지 확인하십시오. 비디오가 그 후 전체 화면 또는 비디오의 화면 비율 귀하의 Google TV 화면의 측면에서 차이가 있기 때문에 될 수있는 몇 가지 빈 영역을 가지고 있지 않은 경우 및/또는에 AndroidManifest.xml을

android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 

을 다음과 같은 추가 비율. Android는 VideoView에 맞게 비디오의 크기를 조정하지만 너비를 동일하게 유지하면서 높게 늘리지는 않습니다. 비디오를 다시 만들고 더 표준 1080p 또는 720p 종횡비로 만들 수 있습니다.

+0

감사합니다. 트위크 중 하나는 알 필요가 있습니다. – MYR