Android:在观看youtube视频全屏时,我按回来,活动结束

时间:2013-03-28 19:36:02

标签: android fullscreen android-youtube-api

我已经阅读了全部从YouTube视频中删除全屏的方法,但是在Activity我的public class MainActivity extends YouTubeFailureRecoveryActivity { public static String prefix = "https://gdata.youtube.com/feeds/api/playlists/"; public static String sufix = "?v=2&alt=jsonc"; private String myPlayList = "PLZGKlf2ZwY7ua0C2oeUaXQKeLKNGy3mkh"; private VideosListFragment videosFragment; // The next video to play private Video actualVideo; // This is the handler that receives the response when the YouTube read private Handler responseHandler; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); videosFragment = (VideosListFragment) getFragmentManager().findFragmentById(R.id.videosListView); getUserYouTubeFeed(); } @Override public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player, boolean wasRestored) { if (!wasRestored) { player.loadVideo(actualVideo.getVideoId()); } } @Override protected YouTubePlayer.Provider getYouTubePlayerProvider() { return (YouTubePlayerFragment) getFragmentManager().findFragmentById( R.id.youtube_fragment); } public void getUserYouTubeFeed() { responseHandler = new Handler() { public void handleMessage(Message msg) { populateListWithVideos(msg); }; }; // We start a new AsyncTask that does its work on its own thread // We pass in a handler that will be called when the task has finished LoadPlayListElements bgTask = new LoadPlayListElements(responseHandler); bgTask.execute(myPlayList); } /** * This method retrieves the Library of videos from the task and passes them * to our ListView * * @param msg */ private void populateListWithVideos(Message msg) { Library lib = (Library) msg.getData().get( LoadPlayListElements.LIBRARY); VideosAdapter videos = new VideosAdapter(this, lib.getVideos()); videosFragment.setListAdapter(videos); } @Override protected void onStop() { // Make sure we null our handler when the activity has stopped responseHandler = null; super.onStop(); } public void setVideo(Video _item, boolean _activate) { actualVideo = _item; if (_activate){ YouTubePlayerFragment fragment = (YouTubePlayerFragment) getFragmentManager() .findFragmentById(R.id.youtube_fragment); if (fragment != null && fragment.isInLayout()) { fragment.initialize(DeveloperKey.DEVELOPER_KEY, this); } } } } 它的工作方式不是这样,但我还是愿意。

我发给你代码:

<?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="horizontal"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin" >

    <fragment
        android:id="@+id/videosListView"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:layout_marginTop="?android:attr/actionBarSize"
        class="com.vivoenmimundo.sc2hotsepicreplays.ui.phone.fragment.VideosListFragment" >
    </fragment>

    <fragment
      android:name="com.google.android.youtube.player.YouTubePlayerFragment"
      android:id="@+id/youtube_fragment"
      android:layout_width="0dp"
      android:layout_height="wrap_content"
      android:layout_weight="2"
      android:layout_gravity="center_vertical"/>
</LinearLayout>

和布局:

{{1}}

有什么想法吗?我试图不做任何太奇怪的事情,只需从YouTube的API示例中复制/粘贴。

3 个答案:

答案 0 :(得分:29)

正如之前所说,正确的行为 - 因为玩家在片段内,我必须抓住后退按钮:

@Override
public void onBackPressed() {
    if (fullScreen){
        videoPlayer.setFullscreen(false);
    } else{
        super.onBackPressed();
    }
}

并设置我的&#34; fullScreen&#34; boolean像这样:

@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider,
        YouTubePlayer player, boolean wasRestored) {
    if (!wasRestored) {
        showPlayer();
        videoPlayer = player;
        videoPlayer.setOnFullscreenListener(new OnFullscreenListener() {

            @Override
            public void onFullscreen(boolean _isFullScreen) {
                fullScreen = _isFullScreen;
            }
        });
        videoPlayer.loadVideo(actualVideo.getVideoId());
    }
}

谢谢大家!

答案 1 :(得分:2)

Step1:按照Nhano的答案16

第2步:在Menifest YoutubeActivity标记中添加以下行。

机器人:configChanges = “取向|屏幕尺寸”

这个解决方案对我有用..

答案 2 :(得分:0)

你可以尝试检测后退按钮并自定义它的作用。

// Sets functionality of the hard buttons on the device
@Override 
public boolean onKeyUp(int keyCode, KeyEvent event)
{
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        // Custom define what you want to happen
    }
    return true;
}