Android - 在服务上运行YouTubePlayer

时间:2015-05-09 09:41:59

标签: android service youtube-api

我使用YouTube API播放视频。我正在建立一个播放列表(在我的应用程序中),但是每当我移动到我的"添加歌曲"活动,视频停止播放。 有没有办法继续播放视频?也许在服务?如果是这样,怎么样?

我的PlayerActivity代码:

public class PlayerActivity extends YouTubeBaseActivity implements OnInitializedListener, YouTubePlayer.PlayerStateChangeListener {

private YouTubePlayerView playerView;
YouTubePlayer ytp;
private Button again;
private ArrayList<String> list;

@Override
protected void onCreate(Bundle bundle) {
    super.onCreate(bundle);

    setContentView(R.layout.activity_player);

    playerView = (YouTubePlayerView)findViewById(R.id.player_view);
    again = (Button) findViewById(R.id.bAgain);
    list = new ArrayList<>();

    playerView.initialize(YoutubeConnector.KEY, this);

    again.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(getApplication(),SearchActivity.class);
            startActivityForResult(i,100);
        }
    });
}

@Override
public void onInitializationFailure(Provider provider,
                                    YouTubeInitializationResult result) {
    Toast.makeText(this, getString(R.string.failed), Toast.LENGTH_LONG).show();
}

@Override
public void onInitializationSuccess(Provider provider, YouTubePlayer player,
                                    boolean restored) {
    if(!restored){
        list.add(getIntent().getStringExtra("VIDEO_ID"));
        play();
    }
}

private void play() {
    ytp.setPlayerStateChangeListener(this);
    ytp.setPlayerStyle(YouTubePlayer.PlayerStyle.DEFAULT);
    ytp.loadVideo(getIntent().getStringExtra("VIDEO_ID"));
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == 100) {
        list.add(getIntent().getStringExtra("VIDEO_ID"));
    }
}

@Override
public void onLoading() {

}

@Override
public void onLoaded(String s) {

}

@Override
public void onAdStarted() {

}

@Override
public void onVideoStarted() {

}

@Override
public void onVideoEnded() {
    if(list.hasNext())
        playNext();
}

@Override
public void onError(YouTubePlayer.ErrorReason errorReason) {

}
}

0 个答案:

没有答案