ios - 使用 AVPlayerViewController 的前置视频广告

标签 ios objective-c iad avplayer

我在使用 iAd 的前置视频广告时遇到问题。

- (void)viewDidLoad {
    [super viewDidLoad];

    self.canDisplayBannerAds = YES;

    NSURL *url = [NSURL URLWithString:@"http://www.ebookfrenzy.com/ios_book/movie/movie.mov"];
    player = [[AVPlayerViewController alloc] init];
    player.showsPlaybackControls = YES;
    AVPlayer *playerP = [[AVPlayer alloc] initWithURL:url];

    player.player = playerP;
    player.delegate = self;
}

- (IBAction)buttonClick:(id)sender {
    [self presentViewController:player animated:YES completion:^{
        [player playPrerollAdWithCompletionHandler:^(NSError *error) {

            if (error != nil) {
                NSLog(@"Error Message: %@", error);
            }
        }];
        NSLog(@"Completion");
    }];
}

运行时出现以下错误:

Error Domain=ADErrorDomain Code=0 "(null)"

不显示 iAd 前滚动视频广告。我遵循了这个文档: Monetizing your iOS apps with iAd

我还在我的 info.plist 中允许了 Arbitrary Loads

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>

最佳答案

您需要在 viewDidLoad 中调用 preparePrerollAds 以下载广告,然后再尝试呈现它。

[AVPlayerViewController preparePrerollAds];

使用 MPMoviePlayerController 检查我的示例 here .这是相同的方法。

此外,如果您在开发设备上进行测试,请转到“设置”>“开发人员”>“填充率”> 并确保将其设置为 100%。

关于ios - 使用 AVPlayerViewController 的前置视频广告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33709412/

相关文章:

java - 如何将此代码从 iOS swift 转换为 Android Kotlin

php - 在 Objective-C 中转换 PHP post 请求格式

ios - 无法创建有效的 JSON 对象?

ios - 为 NSNotificationCenter 添加乘法观察者

iphone - iAd didFailToReceiveAdWithError 总是调用

iphone - iAd 随机崩溃

ios - UIImageView 框架没有按预期进行动画处理(大小和原点)

ios - 核心数据和 NSFRC 显示条目但不会在每次启动和键值编码错误中持续存在

ios - 为什么 block 在引用 self 时会创建保留循环?

ios - TabBarController - 切换选项卡保持横幅 View ;