마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

유튜브 재생관련 질문드립니다.

0 추천

유튜브 재생 연습을 을 하고있는데요.

 

지금 작성해놓은건 별거없습니다.

 

어떤 동영상을 읽어와서 바로 재생하는겁니다.

재생하기전에 오디오 볼륨을 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();
        }
    }


}
김원장91 (1,470 포인트) 님이 2016년 11월 8일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...