3

我正在尝试在我正在开发的本机 iOS 应用程序中启用视频自动播放。我的公司将在明年开发一个成熟的应用程序,但我的任务是构建一个快速原型。这个原型的目的是为我们提供一个快速的工具来使用通过UIWebView提供的自动播放功能。

只是为了画更多的图片。我们当前的网站用户体验最适合自动播放功能,我们的许多用户都在我们的移动版网站上要求使用此功能。目前,我们确实提供了一个稍微不同的移动网站,但您可能知道 Apple(由于数据问题)已禁用通过 JS/HTML5 等的自动播放。这就是我们希望在不远的将来。

所以我是 Objective-C 和 iOS 开发的新手,但是在阅读了大约半天的 Apple 开发人员文档后,我已经设法将我们的网站加载到 UIWebView 中。然后我设置mediaPlaybackRequiresUserAction = NO. 但是,我没有在 iOS 模拟器中看到自动播放功能。

在此处查看更多详细信息:

mediaPlaybackRequiresUserAction 一个布尔值,用于确定 HTML5 视频是可以自动播放还是要求用户开始播放。

@property(nonatomic) BOOL mediaPlaybackRequiresUserAction 讨论 iPad 和 iPhone 上的默认值都是 YES。

可用性 适用于 iOS 4.0 及更高版本。在 UIWebView.h 中声明

这是我的 ViewController.h 的内容:

#import <UIKit/UIKit.h>    
@interface myCompanyViewController : UIViewController
@property (strong, nonatomic) IBOutlet UIWebView *webView;

@end

这是我的 ViewController.m:

#import "myCompanyViewController.h"

@interface myCompanyViewController ()

@end

@implementation myCompanyViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    NSString *fullURL = @"http://www.mycompany.com";
    NSURL *url = [NSURL URLWithString:fullURL];
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
    [_webView loadRequest:requestObj];
    _webView.allowsInlineMediaPlayback = YES;
    _webView.mediaPlaybackRequiresUserAction = NO;
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

那么我错过了什么?感谢您提供的任何帮助和建议。

4

2 回答 2

1

发现这个stackoverflow:

“Apple 已决定通过脚本和属性实现禁用 iOS 设备上的视频自动播放。

在 Safari 中,在 iOS 上(适用于所有设备,包括 iPad),用户可能在蜂窝网络上并按数据单位收费,预加载和自动播放被禁用。在用户启动数据之前,不会加载任何数据。” - Apple 文档。

苹果的保姆状态!

于 2013-10-18T23:30:24.037 回答
0

使用它来启用 webview 的自动播放

NSString *Str_embbed_video = [NSString stringWithFormat:@"\
                              <html><head>\
                              <style type=\"text/css\">\
                              body {\
                              background-color: black;\
                              color: transparent;\
                              }\
                              </style>\
                              </head><body style=\"margin:0\">\
                              <video width=\"%0.0f\" height=\"%0.0f\" controls autoplay=\"true\" poster=\"%@\" webkit-playsinline\> <source src=\"%@\" type=\"video/mp4\" ></video>\
                              </body></html>",webviewFrame.size.width,webviewFrame.size.height,imageurlString,videoUrlString];


[webView loadHTMLString:Str_embbed_video baseURL:[[NSBundle mainBundle] resourceURL]];
于 2015-07-22T07:44:16.437 回答