将iPhone的webViewDidFinishLoad检测到流媒体音频文件的播放结束

时间:2011-02-24 18:21:29

标签: iphone ios streaming podcast audiovideoplayback

我正在尝试检测播客流的播放结束。我正在使用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 个答案:

答案 0 :(得分:0)

我不确定这是不是问题,但你不应该在委托方法中 shadow 你的实例变量theWebView。我不知道将WebView更改为webView将解决您被解雇的委托问题,但这是我首先要看的地方。

要回答原始问题,在收到Webview响应后,不会在流连接结束时调用此委托。我也正在寻找一个钩子来完成流的解决方案。