3

作業中のネイティブ iOS アプリでビデオの自動再生を有効にしようとしています。私の会社は来年本格的なアプリを開発する予定ですが、迅速なプロトタイプの構築を任されています。このプロトタイプのポイントは、UIWebViewを通じて利用できる自動再生機能を試すための簡単なツールを提供することです。

もう少し絵を描くだけです。現在の Web サイトの UX は自動再生機能が最適であり、多くのユーザーがサイトのモバイル バージョンでこの機能を求めています。現時点では、モバイル用に少し異なるサイトを提供していますが、おそらくご存知のように、Apple は (データの問題により) JS/HTML5 などによる自動再生を無効にしています。これが、実際の iOS アプリを近い将来。

私は 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

スタックオーバーフローのこれを見つけました:

「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 に答える