2016-02-26 119 views
0

我嘗試使用YouTube視頻APIYouTube的發揮得到400錯誤在android系統

當我把靜態ID是指當時的代碼文件中聲明ID正在播放視頻。

但是,當我嘗試從getIntent()獲取ID時,我也獲得了ID,但視頻無法播放。

我得到了網絡有問題。

以下是我的代碼。

這裏我下面的代碼

private static final int RECOVERY_DIALOG_REQUEST = 1; 
String DEVELOPER_KEY = "AryAGafadXF9ECWqjdPtsahshsrJHzg"; 
// YouTube player view 
private YouTubePlayerView youTubeView; 
String youtubeLink; 
@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_main); 
    Intent intent =getIntent(); 
    youtubeLink=intent.getStringExtra("youtubeLink"); 
    youTubeView = (YouTubePlayerView) findViewById(R.id.youtube_view); 

    // Initializing video player with developer key 
    youTubeView.initialize(DEVELOPER_KEY, this); 

} 

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

@Override 
public void onInitializationSuccess(YouTubePlayer.Provider provider, 
     YouTubePlayer player, boolean wasRestored) { 
    if (!wasRestored) { 

     // loadVideo() will auto play video 
     // Use cueVideo() method, if you don't want to play it automatically 
     player.loadVideo(youtubeLink); 

     // Hiding player controls 
     player.setPlayerStyle(PlayerStyle.CHROMELESS); 
    } 
} 

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

private YouTubePlayer.Provider getYouTubePlayerProvider() { 
    return (YouTubePlayerView) findViewById(R.id.youtube_view); 
} 

}

我的錯誤

不工作我得到了400網絡問題錯誤

主要業務代碼

//youtube image display id and imageView 
    youtube_image=(ImageView)findViewById(R.id.revi_fulldes_movieyoutubeImg); 
    youtube_image.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent youtube= new Intent(getApplicationContext(),PlayYouTube1st.class); 
      youtube.putExtra("youtubeLink",youtubeLink); 
      startActivity(youtube); 


     } 
    }); 

    youtubeLink=Reviews_update.revData.get(mov_pos).getYoutubeLink(); 


    mov_pos=Integer.parseInt((getIntent().getExtras()).getString("mov_pos")); 

回答

0

當您將youtube完整網址作爲loadVideo(videoID)方法中的參數時,會發生這種情況。

youtubeLink=intent.getStringExtra("youtubeLink"); 
//check is youtube videoID 
//not give entire youtube url 

只給出的YouTube ID而不是整個YouTube URL(youtubeLink)到loadVideo()方法。

+0

是的,我給了只是身份證,但我面臨這個錯誤@ sasiKumar – chanti

+0

打印youtubeLink吐司檢查是否正確? – sasikumar

+0

傳遞空值 – chanti