【问题标题】:Issue with not getting sound in device when play youtube video in UIWebView in IOS在 IOS 的 UIWebView 中播放 youtube 视频时设备中没有声音的问题
【发布时间】:2014-06-10 21:51:49
【问题描述】:

我正在使用UIWebView 播放 Yoytube 视频。
我的代码是这样的

self.webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0,320, 240)];
[self.webView setBackgroundColor:[UIColor clearColor]];
[self.webView setOpaque:NO];
self.webView.delegate=self;
[self.webView setAllowsInlineMediaPlayback:YES];
[self.webView setMediaPlaybackRequiresUserAction:NO];
[self.viewContent addSubview:self.webView];

NSString* embedHTML = [NSString stringWithFormat:@"\
                                   <html>\
                                   <body style='margin:0px;padding:0px;'>\
                                   <script type='text/javascript' src='http://www.youtube.com/iframe_api'></script>\
                                   <script type='text/javascript'>\
                                   function onYouTubeIframeAPIReady()\
                                   {\
                                   ytplayer=new YT.Player('playerId',{events:{onReady:onPlayerReady}})\
                                   }\
                                   function onPlayerReady(a)\
                                   { \
                                   a.target.playVideo(); \
                                   }\
                                   </script>\
                                   <iframe id='playerId' type='text/html' width='%d' height='%d' src='http://www.youtube.com/embed/%@?enablejsapi=1&rel=0&playsinline=1&autoplay=1' frameborder='0'>\
                                   </body>\
                                   </html>", 320, 240, [dictIW valueForKey:@"embedCode"]];
[self.webView loadHTMLString:embedHTML baseURL:[[NSBundle mainBundle] resourceURL]];

在模拟器中玩得非常好。但是当我在 iPhone 或 iPad 上播放此视频时,视频正在播放,但声音却没有。
请帮忙。

【问题讨论】:

    标签: objective-c video uiwebview youtube


    【解决方案1】:
    do{
        try AVAudioSession.sharedInstance().setCategory(.playback, mode: .moviePlayback, options: .defaultToSpeaker)
    } catch let error {
        print("Error: \(error)")
    }
    

    如果使用 swift,您认为确实加载了。

    【讨论】:

      【解决方案2】:

      在创建 UIWebView 之前将音频会话类别设置为“播放”

      AVAudioSession *audioSession = [AVAudioSession sharedInstance];
      BOOL flag;
      NSError *setCategoryError = nil;
      flag = [audioSession setCategory:AVAudioSessionCategoryPlayback
                           error:&setCategoryError];
      

      【讨论】:

      • 我正在使用 YTPlayerView 播放 youtube 视频,因为我也无法在 iphone 中获取音频,然后我使用了上面的代码,它确实很神奇。
      猜你喜欢
      • 2017-03-21
      • 1970-01-01
      • 2018-01-07
      • 2017-09-30
      • 1970-01-01
      • 2017-02-10
      • 2012-09-15
      • 2016-01-23
      • 1970-01-01
      相关资源
      最近更新 更多