Android 以编程方式播放YouTubeplyer不工作
我正在使用YouTube API在我的应用程序中播放视频 我想在用户输入片段时正确播放视频,因此我使用了命令Android 以编程方式播放YouTubeplyer不工作,android,android-video-player,android-youtube-api,Android,Android Video Player,Android Youtube Api,我正在使用YouTube API在我的应用程序中播放视频 我想在用户输入片段时正确播放视频,因此我使用了命令player.play()以便自动播放。但是这个命令似乎不起作用 这是我的密码: public class YouTubeVideoFragment extends YouTubePlayerFragment{ YouTubePlayer player; public YouTubeVideoFragment() { } @Override public void onDestro
player.play()代码>以便自动播放。但是这个命令似乎不起作用
这是我的密码:
public class YouTubeVideoFragment extends YouTubePlayerFragment{
YouTubePlayer player;
public YouTubeVideoFragment()
{
}
@Override
public void onDestroy()
{
// TODO Auto-generated method stub
super.onDestroy();
if(player!= null)
{
player.release();
}
}
@Override
public void onStop()
{
// TODO Auto-generated method stub
super.onStop();
if(player!= null)
{
player.release();
}
}
public static YouTubeVideoFragment newInstance(String url)
{
YouTubeVideoFragment f = new YouTubeVideoFragment();
Bundle b = new Bundle();
b.putString("url", url);
f.setArguments(b);
f.init();
return f;
}
private void init()
{
initialize("api_key", new OnInitializedListener() {
@Override
public void onInitializationFailure(Provider arg0, YouTubeInitializationResult arg1)
{
Log.e("YouTubeFragment", "Error");
}
@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player, boolean wasRestored)
{
if (!wasRestored)
{
player.cueVideo(getArguments().getString("url"));
player.play();//THIS DOESNT WORK!!!
}
}
});
}
}必须在PlayerStateChangeListener()的onLoaded()中调用player.play()。
因此,将onInitializationSuccess更改为:
@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player, boolean wasRestored)
{
if (!wasRestored)
{
player.setPlayerStateChangeListener(new PlayerStateChangeListener() {
@Override
public void onVideoStarted() {
}
@Override
public void onVideoEnded() {
}
@Override
public void onLoading() {
}
@Override
public void onLoaded(String videoId) {
player.play();
}
@Override
public void onError(ErrorReason reason) {
}
@Override
public void onAdStarted() {
}
});
}
如果需要在片段初始化后立即加载和播放视频,只需使用player.loadVideo(videoId)
而不是player.cueVideo(videoId)
并覆盖onload()
hook
看一下文档:
loadVideo(字符串videoId)
加载并播放指定的视频
cueVideo(字符串videoId)
加载指定视频的缩略图并准备播放器播放视频,但在调用play()之前,不会下载任何视频流