【发布时间】:2014-09-19 08:12:49
【问题描述】:
如果我点击UIWebView 中的 mp3 url,它会弹出媒体播放器以自动播放 mp3。
但在这里我需要的只是要求用户确认在UIWebview媒体播放器中播放歌曲。是否可以访问UIWebview媒体播放器?如果是怎么回事?
请帮帮我
【问题讨论】:
标签: ios uiwebview media-player
如果我点击UIWebView 中的 mp3 url,它会弹出媒体播放器以自动播放 mp3。
但在这里我需要的只是要求用户确认在UIWebview媒体播放器中播放歌曲。是否可以访问UIWebview媒体播放器?如果是怎么回事?
请帮帮我
【问题讨论】:
标签: ios uiwebview media-player
是的,可以要求用户确认。
用户 UIWebView 委托方法:
- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
self.URL = [request URL];
if (navigationType == UIWebViewNavigationTypeLinkClicked)
{
AVURLAsset* asset;
self.songURL = [NSString stringWithFormat:@"%@",self.URL];
//Check for supported song formatted
if([self.songURL hasSuffix:@".mp3"] ||
[self.songURL hasSuffix:@".wav"] ||
[self.songURL hasSuffix:@".aiff"] ||
[self.songURL hasSuffix:@".aac"] ||
[self.songURL hasSuffix:@".m4a"] ||
[self.songURL hasSuffix:@".m4p"] ||
[self.songURL hasSuffix:@".caf"])
{
asset = [[AVURLAsset alloc]initWithURL:self.URL options:nil];
if(asset != nil)
{
UIActionSheet *actSheet = [[UIActionSheet alloc]
initWithTitle:@"Songs"
delegate:self
cancelButtonTitle:@"Cancel"
destructiveButtonTitle:@"Download"
otherButtonTitles:@"Listen Online", nil];
[actSheet showInView:self.view];
}
[asset release];
return NO;
}
}
return YES;
}
关于 UIActionSheetDelegate 方法:
-(void) actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
if(buttonIndex == 1)
{
[self.webView loadRequest:[NSURLRequest requestWithURL:self.URL]];
}
}
【讨论】: