A.B*_*.B. 2 android youtube-api android-youtube-api
我试图在我的应用程序中集成Youtube播放器api.但是,当我切换到全屏时,会出现一些问题:
公共类YouTubeVideoElement extends Element实现了YouTubePlayer.OnInitializedListener {
private final String DEVELOPER_KEY = "MY_KEY";
private static final int RECOVERY_DIALOG_REQUEST = 1;
private RelativeLayout.LayoutParams layoutParams;
private YouTubePlayerFragment playerFragment;
private View playerView;
private ViewGroup viewFrame;
public State state;
private Dialog errorDialog;
private Context context;
public YouTubeVideoElement(Context context) {
this.context = context;
}
@Override
public String getType() {
return null;
}
@Override
public ViewGroup getView() {
return viewFrame;
}
@Override
public ViewGroup populateView(Context context, JsonObject data, Map<String, String> style) {
viewFrame = new FrameLayout(context);
playerView = new FrameLayout(context);
playerView.setId(R.id.player_view);
playerView.setVisibility(View.INVISIBLE);
viewFrame.addView(playerView, -1, -1);
playerView.setVisibility(View.VISIBLE);
playerFragment = YouTubePlayerFragment.newInstance();
playerFragment.initialize(DEVELOPER_KEY, this);
((Activity) context).getFragmentManager().beginTransaction().add(R.id.player_view, playerFragment).commit();
return viewFrame;
}
public RelativeLayout.LayoutParams getLayoutParams() {
return layoutParams;
}
public YouTubeVideoElement setLayoutParams(RelativeLayout.LayoutParams layoutParams) {
this.layoutParams = layoutParams;
return this;
}
@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player, boolean wasRestored) {
Log.d("xxx", "onInitSuccess YTP");
if (!wasRestored) {
player.cueVideo("nCgQDjiotG0");
}
}
@Override
public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult errorReason) {
Log.d("xxx", "onInitFailure YTP");
if (errorReason.isUserRecoverableError()) {
errorReason.getErrorDialog((Activity) context, RECOVERY_DIALOG_REQUEST).show();
} else {
//String errorMessage = String.format(getString(R.string.error_player), errorReason.toString());
Toast.makeText(context, "error", Toast.LENGTH_LONG).show();
}
}
}
Run Code Online (Sandbox Code Playgroud)
请尝试在AndroidManifest文件中更新:
<activity
android:configChanges="keyboardHidden|orientation|screenSize"
android:name="com.example.yourClassThatHandlesTheYoutubePlayer">
Run Code Online (Sandbox Code Playgroud)
列出活动将自行处理的配置更改.在运行时发生配置更改时,默认情况下会关闭并重新启动活动,但声明具有此属性的配置将阻止活动重新启动.相反,活动仍在运行,并调用其onConfigurationChanged()方法.
| 归档时间: |
|
| 查看次数: |
2354 次 |
| 最近记录: |