我遇到了类似的麻烦。我假设您从 obj-c 版本的https://gist.github.com/fousa/5709fb7c84e5b53dbdae508c9cb4fadc开始,是吗?此代码部分似乎对我有用,我只是想知道这是否是您已经拥有的。
// licenseRequestURL is https://keydeliveryURL.azure.net/FairPlay/?kid=whatever-your-key-id-is
// contentId is keydeliveryURL.azure.net
// Create HTTP request
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:licenseRequestURL];
[request setHTTPMethod:@"POST"];
[request setValue:[NSString stringWithFormat:@"Bearer %@",authenticationToken] forHTTPHeaderField:@"Authorization"];
// Create Request HTTP body:
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
NSString *spcString = [spcData base64EncodedStringWithOptions:0];
NSString *httpBodyString = [NSString stringWithFormat:@"spc=%@&assetId=%@",
[spcString stringByAddingPercentEncodingWithAllowedCharacters:
[[NSCharacterSet characterSetWithCharactersInString:@"="] invertedSet]], contentId];
[request setHTTPBody:[httpBodyString dataUsingEncoding:NSUTF8StringEncoding]];
// Create session to run request asynchronously
NSURLSession *session = [NSURLSession sessionWithConfiguration:NSURLSessionConfiguration.defaultSessionConfiguration
delegate:self
delegateQueue:nil];
NSURLSessionTask *task = [session dataTaskWithRequest:request
completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
NSString *dataString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSString *stringStrippedOfCkcTags = [[dataString stringByReplacingOccurrencesOfString:@"<ckc>"
withString:@""]
stringByReplacingOccurrencesOfString:@"</ckc>"
withString:@""];
NSData *base64CkcData = [[NSData alloc] initWithBase64EncodedString:stringStrippedOfCkcTags
options:0];
[dataRequest respondWithData:base64CkcData];
[loadingRequest finishLoading];
}];
[task resume];
如果这是您所拥有的,那么视频可能就是问题所在。