gpt4 book ai didi

objective-c - iOS Mediaplayer 和 URL 重定向

转载 作者:行者123 更新时间:2023-11-29 04:49:39 25 4
gpt4 key购买 nike

我正在尝试实现 MPMedia 播放器来播放互联网文件。到目前为止,我已成功打开媒体播放器,其中包含我托管的视频链接。当我尝试加载一个不直接映射到文件而是重定向到该文件的 URL 时,问题就出现了。

初始网址如下所示:h*tp://www.example.com/numbers/numbers/numbers

当我将其放入浏览器中时,它会自动更改为以下内容:h*tp://www.example.com/numbers.mp4?to=numbers

当我直接使用初始网址时,就像我使用直接网址一样,播放器会出现并立即下降,而不播放视频。

我尝试过 NSURLConnection 来获取重定向网址,但无法使其正常工作,不知何故,该方法 - connection:willSendRequest:redirectResponse: 没有被调用。我想这可能是因为它在iOS 5中被删除了,但我不知道有什么替代方案,而且这种问题确实没有记录。

这是我的代码:(我跳过了shortUrl初始化,它有效)。

NSLog(@"%@",shortUrl);

redirecionando=TRUE;

NSURLConnection * conection = [[NSURLConnection alloc]initWithRequest:[NSURLRequest requestWithURL:shortUrl] delegate:self];
[conection start];

while(self.redirecting);

self.moviePlayerController = [[MPMoviePlayerViewController alloc] initWithContentURL:finalurl];
moviePlayerController.view.frame = self.view.bounds;
[self presentMoviePlayerViewControllerAnimated:moviePlayerController];
moviePlayerController.moviePlayer.controlStyle = MPMovieControlStyleFullscreen;
moviePlayerController.moviePlayer.shouldAutoplay = YES;
[moviePlayerController.moviePlayer prepareToPlay];
moviePlayerController.moviePlayer.fullscreen=YES;



}

- (NSURLRequest *)connection: (NSURLConnection *)inConnection
willSendRequest: (NSURLRequest *)inRequest
redirectResponse: (NSURLResponse *)inRedirectResponse;
{
finalurl=inRequest.URL;
self.redirecting=FALSE;
return inRequest;
}

我知道最后一个方法没有被调用,我对它进行了 NSLogged。现在,当上面的代码被执行时,它只是因为 while 循环而等待。

顺便说一句,我无法使用外部 api 来发现像 http://longurl.org/ 这样的重定向。因为该链接会返回请求设备的 token 访问权限它。

提前致谢。

最佳答案

我解决了。事实证明,这一行:

while(self.redirecting);

我阻塞了主线程,从而阻止了方法连接:willSendRequest:redirectResponse:被调用。我已经解决了这个问题,获取该行下方的代码并将其放入从重定向方法调用的另一个函数中。我还必须修改重定向方法,因为它被调用了很多次,即使在到达 mp4 之前使用原始 url。

感谢您花时间阅读问题。

关于objective-c - iOS Mediaplayer 和 URL 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9062338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com