首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跳转到millis不使用youtube-api

跳转到millis不使用youtube-api
EN

Stack Overflow用户
提问于 2017-09-21 13:46:53
回答 1查看 405关注 0票数 0

我已经学会了在https://www.sitepoint.com/using-the-youtube-api-to-embed-video-in-an-android-app/上使用youtube-API制作一个播放器。

当练习跳转到某一秒钟时,我会出错。

com.google.android.youtube.player.YouTubePlayer.seekToMillis(int)‘:尝试在空对象引用上调用接口方法'void java.lang.NullPointerException’

这是我的编码

代码语言:javascript
复制
public class SitepointSample extends YouTubeBaseActivity implements YouTubePlayer.OnInitializedListener {

private static final int RECOVERY_REQUEST = 1;
private YouTubePlayerView youtubeView;

private MyPlayerStateChangeListener playerStateChangeListener;
private MyPlaybackEventListener playbackEventListener;

private YouTubePlayer player;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sitepoint_sample);

final EditText seekToText = (EditText)   findViewById(R.id.seek_to_text);
Button seekToButton = (Button) findViewById(R.id.seek_to_button);
seekToButton.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View view) {
    int skipToSecs = Integer.valueOf(seekToText.getText().toString());
    player.seekToMillis(skipToSecs * 1);
  }
});

playbackEventListener = new MyPlaybackEventListener();
playerStateChangeListener = new MyPlayerStateChangeListener();

youtubeView = (YouTubePlayerView) findViewById(R.id.youtube_view);
youtubeView.initialize(Config.YOUTUBE_API_KEY, this);
}

@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer,
                                  boolean wasRestored) {
this.player = player;
if (!wasRestored) {
  youTubePlayer.setPlayerStateChangeListener(playerStateChangeListener);
  youTubePlayer.setPlaybackEventListener(playbackEventListener);
  youTubePlayer
      .cueVideo("fhWaJi1Hsfo"); //plays video_id == https://www.youtube.com/watch?v=fhWaJi1Hsfo
}
}

@Override
public void onInitializationFailure(YouTubePlayer.Provider provider,
                                  YouTubeInitializationResult errorReason) {
if (errorReason.isUserRecoverableError()) {
  errorReason.getErrorDialog(this, RECOVERY_REQUEST).show();
} else {
  String error = String.format(getString(R.string.player_error), errorReason.toString());
  Toast.makeText(this, error, Toast.LENGTH_SHORT).show();
}
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == RECOVERY_REQUEST) {
  // Retry initialization if user performed a recovery action
  youtubeView.initialize(Config.YOUTUBE_API_KEY, this);
}
}

protected YouTubePlayerView getYouTubePlayerProvider() {
return youtubeView;
}

private void showMessage(String message) {
Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
}

有人能处理这事吗?

EN

回答 1

Stack Overflow用户

发布于 2017-09-21 13:50:45

请尝试使用以下代码:

代码语言:javascript
复制
PlayFragment(start, stop){
player.seekTo(40);

while(player.getCurrentTime() !> 60)
{
     sleep(1000);
}

player.stop();
}

function sleep(milliseconds) {
  var start = new Date().getTime();
  for (var i = 0; i < 1e7; i++) {
    if ((new Date().getTime() - start) > milliseconds){
      break;
    }
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46345689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档