iPhone 的 webViewDidFinishLoad 是不是会检测到流式音频文件的“播放结束”
Posted
技术标签:
【中文标题】iPhone 的 webViewDidFinishLoad 是不是会检测到流式音频文件的“播放结束”【英文标题】:Will iPhones webViewDidFinishLoad Detect End of Playback" of Streamed Audio FileiPhone 的 webViewDidFinishLoad 是否会检测到流式音频文件的“播放结束” 【发布时间】:2011-02-24 18:21:29 【问题描述】:我正在尝试检测播客流的播放结束。我正在使用loadRequest:[NSURLRequest requestWithURL:location]
加载包含正在播放的 mp3 文件的网页。在查看了问题档案后,我认为<UIWebViewDelegate>
协议的实现,特别是webViewDidFinishLoad
方法可能是答案。但是,在实现它之后,当音频文件完成时,我没有看到这个方法被调用。事实上,我从未见过该方法被调用,这让我相信我可能没有正确实现它。这是我所做的:
在我的头文件中:
@interface MyWebViewController : UIViewController<UIWebViewDelegate>
NSURL *location; // holds the web address that will be loaded by this app
IBOutlet UIWebView *theWebView;
在我的类实现文件中:
- (void)viewDidLoad
[super viewDidLoad];
theWebView.delegate = self;
[theWebView loadRequest:[NSURLRequest requestWithURL:location]];
- (void)webViewDidFinishLoad:(UIWebView *)theWebView
NSLog(@"view did finish");
这是确定加载到网页中的音频文件播放结束的正确解决方案吗?如果不是,那么检测播放结束的更好方法是什么?如果这个解决方案背后的想法是正确的,那么这个实现我做错了什么?
【问题讨论】:
【参考方案1】:我不确定这是否是问题所在,但您不应该在委托方法中隐藏您的实例变量 theWebView。我不知道将 theWebView 更改为 webView 会解决您的委托被解雇的问题,但这是我首先要看的地方。
为了回答您的原始问题,在收到 Webview 响应后而不是在流连接结束时调用此委托。我也在寻找一种解决方案,以挂钩到流的完成。
【讨论】:
以上是关于iPhone 的 webViewDidFinishLoad 是不是会检测到流式音频文件的“播放结束”的主要内容,如果未能解决你的问题,请参考以下文章
如何在 iOS 的 UIWebView 的文档目录中使用 Javascript?
在 iphone 5 和 iphone 6 中动态设置字体大小