我正在尝试检测播客流的播放结束。我正在使用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");
}
这是否是确定加载到网页的音频文件播放结束的正确解决方案?如果没有,那么检测播放结束的更好方法是什么?如果这个解决方案背后的想法是正确的,那么我对这个实现做了什么错误?
答案 0 :(得分:0)
我不确定这是不是问题,但你不应该在委托方法中 shadow 你的实例变量theWebView。我不知道将WebView更改为webView将解决您被解雇的委托问题,但这是我首先要看的地方。
要回答原始问题,在收到Webview响应后,不会在流连接结束时调用此委托。我也正在寻找一个钩子来完成流的解决方案。