我正在使用Youtube Player api在我的应用程序中播放youtube视频。视频在1-2秒后开始播放和暂停
我创建了视频片段和ViewGroup。随后我创建了一些youtobe视频。
VideoFragment
public static final class VideoFragment extends YouTubePlayerSupportFragment implements
OnInitializedListener
{
private YouTubePlayer player;
private String videoId;
public static VideoFragment newInstance()
{
return new VideoFragment();
}
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
initialize(Constants.DEVELOPER_KEY, this);
}
@Override
public void onDestroy()
{
if (player != null)
{
player.release();
}
super.onDestroy();
}
public void setVideoId(String videoId)
{
if (videoId != null && !videoId.equals(this.videoId))
{
this.videoId = videoId;
if (player != null)
{
player.cueVideo(videoId);
}
}
}
public void pause()
{
if (player != null)
{
player.pause();
}
}
@Override
public void onInitializationSuccess(Provider provider, YouTubePlayer player,
boolean restored)
{
this.player = player;
if (!restored && videoId != null)
{
player.cueVideo(videoId);
}
}
@Override
public void onInitializationFailure(Provider provider, YouTubeInitializationResult result)
{
this.player = null;
}
}
创建Youtobe videoview的功能
private ViewGroup createYouTubePlayer(final VideoData data, final FrameLayout youTubePlayer)
{
youTubePlayer.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
FragmentManager fm = mActivity.getSupportFragmentManager();
if (v.getId() == mCurrentYouTubePlayer)
{
return;
}
VideoFragment fragment = (VideoFragment) fm.findFragmentById(mCurrentYouTubePlayer);
if (fragment == null)
{
fragment = VideoFragment.newInstance();
fragment.setVideoId(data.srcPath);
fm.beginTransaction().add(youTubePlayer.getId(), fragment).commit();
mCurrentYouTubePlayer = v.getId();
}
else
{
fm.beginTransaction().remove(fragment).commit();
fragment = VideoFragment.newInstance();
fragment.setVideoId(data.srcPath);
fm.beginTransaction().add(youTubePlayer.getId(), fragment).commit();
mCurrentYouTubePlayer = v.getId();
}
}
});
return youTubePlayer;
}
答案 0 :(得分:8)
无法在Google指定的播放器上方添加按钮作为叠加层,否则播放器将停止播放:
请注意,在播放视频时,此视图的最小尺寸为 200x110 dp。如果您使视图更小,视频将 自动停止播放。此外,不允许覆盖 在视频播放时查看其他视图。
此视图不支持填充。为了达到同样的效果,请换一下 另一个ViewGroup中的视图或给它边距。
YouTubePlayer也不支持填充。
要在视频上叠加您的观看次数,我建议您使用 ExoPlayer , 它不是android sdk的一部分,但谷歌推荐它并包含在android开发者文档中:
http://google.github.io/ExoPlayer/
Exoplayer允许您传输任何类型的视频,而不仅仅是Youtubes视频。
还可以提到Exoplayer用于youtube应用程序。
答案 1 :(得分:0)
问题可能是因为com.google.android.youtube.player.YouTubePlayerView上面有一些对象或视频有填充属性