1

我正在尝试检测播客流的播放结束。我正在使用 aloadRequest:[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");
}

这是确定加载到网页中的音频文件播放结束的正确解决方案吗?如果不是,那么检测播放结束的更好方法是什么?如果这个解决方案背后的想法是正确的,那么这个实现我做错了什么?

4

1 回答 1

0

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

为了回答您的原始问题,在收到 Webview 响应后而不是在流连接结束时调用此委托。我也在寻找一种解决方案,用于挂钩到流的完成。

于 2011-07-30T14:44:34.030 回答