유튜브 재생 연습을 을 하고있는데요.
지금 작성해놓은건 별거없습니다.
어떤 동영상을 읽어와서 바로 재생하는겁니다.
재생하기전에 오디오 볼륨을 0으로 하고, 재생후엔 다시 원래의 볼륨으로 돌려놓습니다.(예로 네이버 메인에 광고 영상도 처음엔 볼륨을 0으로 해두는것처럼 해봤습니다.)
여기서.. 분명 구글링에서 시킨대로 유튜브 전체화면에서 취소키(back키) 를 누르면 원래 액티비티가 뜨게끔 작성햇는데...안됩니다..
로그를 찍어보니 유튜브 전체화면으로 넘어갈때
setOnFullscreenListener에서 작성한것처럼
isYoutubeFullSreen 값이 true 로 잘 바뀝니다.
그런데..맨밑에 public void onBackPressed() 여기를 통과할때 isYoutubeFullSreen 값이 다시 false로 바뀌어있네요.
왜그럴까요? 도와주세요 ㅠㅠ
import android.content.Context;
import android.media.AudioManager;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
import com.google.android.youtube.player.YouTubeBaseActivity;
import com.google.android.youtube.player.YouTubeInitializationResult;
import com.google.android.youtube.player.YouTubePlayer;
import com.google.android.youtube.player.YouTubePlayerView;
/**
* Created by ASUS on 2016-11-05.
*/
public class test_youtube extends YouTubeBaseActivity implements YouTubePlayer.OnInitializedListener {
YouTubePlayerView youtubeview;
YouTubePlayer youtube;
String company_ad_youtube_address = "tttG6SdnCd4";
Boolean isYoutubeFullSreen = false;
int current_volume;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test_youtube);
youtubeview = (YouTubePlayerView) findViewById(R.id.youtube);
youtubeview.initialize(getString(R.string.KYC_API_KEY), this);
}
@Override
public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult result) {
Toast.makeText(this, "Failed to initialize.", Toast.LENGTH_LONG).show();
}
@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, final YouTubePlayer player, boolean wasRestored) {
// Start buffering
if (player != null && !wasRestored) {
youtube = player;
player.setOnFullscreenListener(new YouTubePlayer.OnFullscreenListener() {
@Override
public void onFullscreen(boolean b) {
isYoutubeFullSreen = b;
}
});
//이렇게 하면 바로 재생
player.loadVideo(company_ad_youtube_address);
player.setPlayerStateChangeListener(new YouTubePlayer.PlayerStateChangeListener() {
AudioManager mAudioManager = (AudioManager) test_youtube.this.getSystemService(Context.AUDIO_SERVICE);
@Override
public void onVideoStarted() {
}
@Override
public void onVideoEnded() {
mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, current_volume, 0);
}
@Override
public void onLoading() {
}
@Override
public void onLoaded(String videoId) {
//재생전에 현재 볼륨 저장해둠
current_volume = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
//재생전에 볼륨0
mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 0, 0);
player.play();
}
@Override
public void onError(YouTubePlayer.ErrorReason reason) {
}
@Override
public void onAdStarted() {
}
});
//이렇게하면 썸네일상태로만
// player.cueVideo(company_ad_youtube_address);
}
}
@Override
public void onBackPressed() {
if (isYoutubeFullSreen) {
youtube.setFullscreen(false);
isYoutubeFullSreen = false;
} else {
super.onBackPressed();
}
}
}