2017-06-19 69 views
0

我在我的离子项目中使用了Cordova YoutubeVideoPlayer插件。它在android中运行良好,但在IOS中,它不适用于带有连字符( - )的视频ID(例如:“6L-ZHjUhcQY”)。它适用于所有其他网址。我该如何解决这个问题。带连字符的Youtube视频在IOS中不起作用

.controller('menuController', function() { 
    var id = "6L-ZHjUhcQY"; 
    YoutubeVideoPlayer.openVideo(id); 
}); 

回答

0

在调试器中,带有连字符的视频ID是否正确地保存在变量中?这可能是字符编码问题,或者是插件本身的问题。

+0

是,标识正确保存固定的编辑代码。有没有其他插件可以用来代替这个。 – diana

+0

对我个人而言,我使用youtube-dl。它下载YouTube视频,所以我从不体验缓冲区并可以离线观看。 – RoundSauce2

+0

我只想玩它,不需要下载它 – diana

0

Android的问题也YoutubeVideoPlayer.java文件中的插件

private Intent createYoutubeIntent(String videoId) { 
// if (Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP){ 
     Intent intent; 
     Context cordovaContext = cordova.getActivity(); 
     String version = YouTubeIntents.getInstalledYouTubeVersionName(cordovaContext); 
     if(version != null && version.startsWith("11.16") && YouTubeIntents.canResolvePlayVideoIntent(cordovaContext)) { 
      intent = YouTubeIntents.createPlayVideoIntent(cordovaContext, videoId); 
     } else { 
      if(YouTubeIntents.canResolvePlayVideoIntentWithOptions(cordovaContext)){ 
       intent = YouTubeIntents.createPlayVideoIntentWithOptions(cordovaContext, videoId, true, true); 
      } else { 
       intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.youtube.com/watch?v=" + videoId), cordovaContext, YouTubeActivity.class); 
       intent.putExtra("videoId", videoId); 
       ConfigXmlParser parser = new ConfigXmlParser(); 
       parser.parse(cordovaContext); 
       CordovaPreferences prefs = parser.getPreferences(); 
       intent.putExtra("YouTubeApiId", prefs.getString("YouTubeDataApiKey","YOUTUBE_API_KEY")); 
      } 
     } 
     return intent; 
// } 

    //return new Intent(null, Uri.parse("ytv://" + videoId), cordova.getActivity(), OpenYouTubePlayerActivity.class); 
} 
相关问题