В настоящее время я использую YouTube player Api в своем приложении для Android. И после полного исследования я задаю этот вопрос, так как не могу найти правильного решения для этого. Как я могу получить общее время просмотра в API проигрывателя YouTube?
public class YoutubeVideoPlayer extends YouTubeBaseActivity implements YouTubePlayer.OnInitializedListener {
private static final int RECOVERY_DIALOG_REQUEST = 1;
private YouTubePlayerView youTubeView;
private String videoCode = "";
private YouTubePlayer youtubePlayer;
private Singleton singleton;
@Override
public void onSaveInstanceState(Bundle outState) {
if (youtubePlayer != null) {
youtubePlayer.release();
}
youtubePlayer = null;
super.onSaveInstanceState(outState);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.youtube_activity_main);
singleton = Singleton.getReferenceProvider(YoutubeVideoPlayer.this);
youTubeView = (YouTubePlayerView) findViewById(R.id.youtube_view);
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
youTubeView.initialize(com.chalklit.classes.Config.DEVELOPER_KEY, this);
try {
youtubePlayer.play();
} catch (Exception e) {
}
}
@Override
public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult errorReason) {
String url = "https://www.youtube.com/watch?v=" + videoCode;
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
this.finish();
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
if (youtubePlayer != null) {
youtubePlayer.release();
youtubePlayer = null;
}
super.onDestroy();
}
@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player, boolean wasRestored) {
youtubePlayer = player;
player.setPlayerStateChangeListener(playerStateChangeListener);
player.setPlaybackEventListener(playbackEventListener);
if (!wasRestored) {
player.loadVideo(videoCode);
} else {
}
}
private PlaybackEventListener playbackEventListener = new PlaybackEventListener() {
@Override
public void onBuffering(boolean arg0) {
Log.d("Youtube", "onBuffering");
}
@Override
public void onPaused() {
Log.d("Youtube", "onPaused");
}
@Override
public void onPlaying() {
Log.d("Youtube", "onPlaying");
}
@Override
public void onSeekTo(int arg0) {
}
@Override
public void onStopped() {
}
};
private PlayerStateChangeListener playerStateChangeListener = new PlayerStateChangeListener() {
@Override
public void onAdStarted() {
}
@Override
public void onError(ErrorReason arg0) {
}
@Override
public void onLoaded(String arg0) {
Log.d("Youtube", "onLoaded");
}
@Override
public void onLoading() {
Log.d("Youtube", "onLoading");
}
@Override
public void onVideoEnded() {
}
@Override
public void onVideoStarted() {
}
};
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == RECOVERY_DIALOG_REQUEST) {
getYouTubePlayerProvider().initialize(com.chalklit.classes.Config.DEVELOPER_KEY, this);
}
}
private YouTubePlayer.Provider getYouTubePlayerProvider() {
return (YouTubePlayerView) findViewById(R.id.youtube_view);
}
@Override
public void onTrimMemory(int i) {
super.onTrimMemory(i);
}
@Override
protected void onPause() {
super.onPause();
}
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
super.onBackPressed();
}
}
Можно ли узнать общее время просмотра видео?
Я не смогу найти никакого решения для этого. Если у вас есть идеи, как мы можем достичь желаемого результата, это будет для меня большой помощью.