【发布时间】:2018-02-27 09:36:27
【问题描述】:
我正在尝试在具有多个标签的活动中的片段中添加 YouTube 视频播放器。到目前为止,我已经设法运行代码,但我无法启动视频。我添加了一些日志来跟踪进度,似乎通过单击播放按钮,没有任何变化(日志中除外)并且视频无法播放,我不知道为什么。我得到的是这个冻结的屏幕:
我有 Fragment.java 的以下代码:
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import com.google.android.youtube.player.YouTubeInitializationResult;
import com.google.android.youtube.player.YouTubePlayer;
import com.google.android.youtube.player.YouTubePlayerFragment;
import com.google.android.youtube.player.YouTubePlayerSupportFragment;
import com.google.android.youtube.player.YouTubePlayerView;
import java.util.ArrayList;
import java.util.List;
public class FragmentSedinte extends Fragment {
View v;
private static final String TAG = "Checking";
Button btnPlay;
YouTubePlayerView mYouTubePlayerView;
YouTubePlayer.OnInitializedListener mOnInitializedListener;
public FragmentSedinte() {}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
v = inflater.inflate(R.layout.fragment_sedinte, container, false);
return v;
}
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
//YouTubePlayerSupportFragment youTubePlayerFragment = YouTubePlayerSupportFragment.newInstance();
//youTubePlayerFragment.initialize("AIxxxxx",mOnInitializedListener);
super.onViewCreated(view, savedInstanceState);
this.v = view;
Log.d(TAG, "onCreate: Starting.");
//mYouTubePlayerView = (YouTubePlayerView)v.findViewById(R.id.youtubePlay);
YouTubePlayerSupportFragment youTubePlayerFragment = (YouTubePlayerSupportFragment) getFragmentManager().findFragmentById(R.id.youtubePlay);
mOnInitializedListener = new YouTubePlayer.OnInitializedListener() {
@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean wasRestored) {
Log.d(TAG, "onClick: Done initialising");
youTubePlayer.setFullscreen(true);
youTubePlayer.loadVideo("tz-Wf9nEFao");
youTubePlayer.play();
}
@Override
public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) {
Log.d(TAG, "onClick: Failed initializing");
}
};
btnPlay = (Button) v.findViewById(R.id.btnPlay);
btnPlay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d(TAG, "onClick: Initializing YouTube");
//mYouTubePlayerView.initialize(YouTubeConfig.getApiKey(),mOnInitializedListener);
mYouTubePlayerView.initialize("AIxxxxxxxx", mOnInitializedListener);
}
});
}
}
其中 Layout 有如下代码:
<FrameLayout xmlns : android = "http://schemas.android.com/apk/res/android"
android: id = "@+id/container"
android: layout_width = "match_parent"
android: layout_height = "match_parent" >
<LinearLayout
android: layout_width = "match_parent"
android: layout_height = "match_parent"
android: orientation = "vertical" >
<fragment
android: id = "@+id/youtubePlay"
android: name = "com.google.android.youtube.player.YouTubePlayerSupportFragment"
android: layout_width = "match_parent"
android: layout_height = "wrap_content" / >
<Button
android: id = "@+id/btnPlay"
android: layout_width = "100dp"
android: layout_height = "wrap_content"
android: layout_gravity = "center_horizontal"
android: gravity = "center_vertical|fill_vertical"
android: text = "Play"
android: textAlignment = "center" / >
</LinearLayout>
</FrameLayout>
当我点击播放时,我可以在 Logcat 中看到它被触发,但它没有开始播放视频。在日志中我有这个:
02 - 27 10: 26: 50.092 17297 - 17320 / Package.recyclerview V / FA: Inactivity, disconnecting from the service
02 - 27 10: 26: 54.137 17297 - 17297 / Package.recyclerview D / Checking: onClick: Initializing YouTube
02 - 27 10: 26: 59.422 17297 - 17297 / Package.recyclerview D / Checking: onCreate: Starting.
02 - 27 10: 27: 02.786 17297 - 17297 / Package.recyclerview D / Checking: onClick: Initializing YouTube
很明显该按钮已被触发,但似乎没有转到onInitializationSuccess。谁能帮我解决这个问题?
如有必要,我可以添加更多文件,但我认为问题出在此处发布的第一个文件。
【问题讨论】:
-
谢谢@Abhishekc,这段代码中的一些内容取自那里。尤其是在布局中,因为我收到“错误充气...”
标签: android android-fragments youtube-api