Youtube视频连字符在IOS中不起作用

时间:2017-06-19 04:57:32

标签: ios cordova

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

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

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

通过更新某些文件修复了ios问题 https://github.com/fingentffts/CordovaYoutubeVideoPlayer

现在我在android标签中发现了一些问题。

即使屏幕被锁定,视频也在播放。并且连字符视频也没有在三星标签中播放。

答案 2 :(得分: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);
}