Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 设置AVURLAssets的HTTP头字段_Ios_Objective C_Http Headers_Avplayer_Avasset - Fatal编程技术网

Ios 设置AVURLAssets的HTTP头字段

Ios 设置AVURLAssets的HTTP头字段,ios,objective-c,http-headers,avplayer,avasset,Ios,Objective C,Http Headers,Avplayer,Avasset,我正在尝试加载一个视频文件,该文件的头中需要一个令牌。我在Stackverflow上了解到,通过查看以下内容,这是可能的。问题是我不相信avurlastehttpheaderfieldskey是公共的,或者我写的资产变量不正确。我试图做的是将令牌添加到头中,以便AVPlayer加载视频文件。以下是我目前为止的代码,它只显示播放器,但没有加载我猜测的视频,因为我的标题设置不正确: NSURL *videoURL = [NSURL URLWithString:cell.media[@"redirec

我正在尝试加载一个视频文件,该文件的头中需要一个令牌。我在Stackverflow上了解到,通过查看以下内容,这是可能的。问题是我不相信avurlastehttpheaderfieldskey是公共的,或者我写的资产变量不正确。我试图做的是将令牌添加到头中,以便AVPlayer加载视频文件。以下是我目前为止的代码,它只显示播放器,但没有加载我猜测的视频,因为我的标题设置不正确:

NSURL *videoURL = [NSURL URLWithString:cell.media[@"redirectionUrl"]];

        NSMutableDictionary * headers = [NSMutableDictionary dictionary];
        [headers setObject:[CMUser currentUser].token forKey:@"Authorization"];

        AVURLAsset *asset = [AVURLAsset URLAssetWithURL:videoURL options:@{@"AVURLAssetHTTPHeaderFieldsKey" : headers}];


        AVPlayerItem * item = [AVPlayerItem playerItemWithAsset:asset];

        AVPlayer *player = [[AVPlayer alloc] initWithPlayerItem:item];

        AVPlayerViewController *playerViewController = [AVPlayerViewController new];

        playerViewController.player = player;

        playerViewController.modalPresentationStyle = UIModalPresentationOverFullScreen;

        [self presentViewController:playerViewController animated:YES completion:nil];  

代码中的一切都很好。可能在授权令牌中发出的

请检查以下代码,它与您的代码完全相同*迅速地 4.0


代码中的一切都很好。可能在授权令牌中发出的

请检查以下代码,它与您的代码完全相同*迅速地 4.0


您的代码似乎没有问题,请尝试先从邮递员那里获取视频。如果您是从邮递员那里得到的,那么您的代码可能会有一些问题,在完成块中呈现控制器后,也可以通过调用“playervcontroller.player.play()”尝试播放。您的代码似乎没有问题,请先尝试从邮递员那里获取视频。如果你是从postman那里得到的,那么你的代码可能会有一些问题,同样是在完成块中显示控制器后,尝试通过调用“playerViewController.player.play()”进行播放(“AVURLAssetHTTPHeaderFieldsKey”)是私钥,使用此应用程序将在尝试上载时被app Store拒绝。不会。您不能使用私有API,例如函数调用,但可以使用键。我的所有应用都没有因此而被拒绝。“AVURLAssetHTTPHeaderFieldsKey”是私钥,尝试上载时将从应用商店拒绝使用此应用。它不会。您不能使用私有API,例如函数调用,但可以使用键。我的所有应用都没有因为这样的原因被拒绝。
    //MARK:- setting player
    fileprivate func setPlayRemoteUrl() {

        if playUrl == nil || playUrl == "" {
            return
        }
        removeAllObserver()
        resettingObject()

        let headerFields: [String:String] = ["User-Agent":"6y2zxABAb8oqeNec"]
        let asset: AVURLAsset = AVURLAsset.init(url: URL(string: self.playUrl)!, options: ["AVURLAssetHTTPHeaderFieldsKey": headerFields])
        self.playerItem = AVPlayerItem(asset: asset)
        self.player = AVPlayer.init(playerItem: playerItem)

        playerLayer = AVPlayerLayer(player: player)
        playerLayer?.videoGravity = AVLayerVideoGravity.resizeAspect
        playerLayer?.contentsScale = UIScreen.main.scale
        layer.insertSublayer(playerLayer!, at: 0)
        setAllObserver()
    }