我在离子项目中使用Cordova YoutubeVideoPlayer插件。它在android中运行良好。但是在IOS中,它不适用于带有连字符( - )的视频ID(例如:“6L-ZHjUhcQY”)。它适用于所有其他网址。我该怎么解决这个问题。
.controller('menuController', function () {
var id = "6L-ZHjUhcQY";
YoutubeVideoPlayer.openVideo(id);
});
答案 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);
}