【发布时间】:2016-02-09 00:00:29
【问题描述】:
我的 Activity 有一个 YouTubePlayerView,它必须显示在 SurfaceView(相机预览)上。
但是,由于 YouTubePlayerView 的视频视图也使用了 SurfaceView,所以 Youtube 视频没有显示。控件和播放按钮是可见的,您可以在播放视频时听到音频,当播放停止时,可以看到其缩略图。
我了解处理这种情况的正确方法是使用 setZOrderMediaOverlay。我能够通过相机预览使用常规 VideoView 使其正常工作。但是,如何在 YouTubePlayerView 中使用 setZOrderMediaOverlay?
这个问题有解决办法吗?
以下是代码的精简版:
package com.moahh.yc;
import android.os.Bundle;
import android.widget.RelativeLayout;
import com.google.android.youtube.player.YouTubeBaseActivity;
import com.google.android.youtube.player.YouTubeInitializationResult;
import com.google.android.youtube.player.YouTubePlayer;
import com.google.android.youtube.player.YouTubePlayerView;
public class CameraActivity extends YouTubeBaseActivity implements
YouTubePlayer.OnInitializedListener {
private CameraPreview cameraPreview;
private YouTubePlayerView youTubePlayerView;
private final String videoId = "jNQXAC9IVRw";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_camera);
final RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.relative_layout);
cameraPreview = new CameraPreview(this);
relativeLayout.addView(cameraPreview);
youTubePlayerView = new YouTubePlayerView(this);
relativeLayout.addView(youTubePlayerView);
youTubePlayerView.initialize(DeveloperKey.DEVELOPER_KEY, this);
}
@Override
protected void onResume() {
super.onResume();
cameraPreview.onResume();
}
@Override
protected void onPause() {
super.onPause();
cameraPreview.onPause();
}
@Override
protected void onDestroy() {
super.onDestroy();
cameraPreview.onDestroy();
}
@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider,
YouTubePlayer youTubePlayer, boolean restored) {
if (restored) {
youTubePlayer.play();
} else {
youTubePlayer.loadVideo(videoId);
youTubePlayer.setShowFullscreenButton(false);
}
}
@Override
public void onInitializationFailure(YouTubePlayer.Provider provider,
YouTubeInitializationResult youTubeInitializationResult) {
}
}
而activity的布局只是一个RelativeLayout:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relative_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
</RelativeLayout>
【问题讨论】:
-
我现在面临同样的问题。你找到解决办法了吗?
-
不,我没有,所以我更改了布局,YouTubePlayerView 不在相机预览上方。
标签: android youtube-api android-youtube-api