首页 文章

IOS-在uiwebview媒体播放器中询问用户播放的歌曲

提问于
浏览
0

如果我点击 UIWebView 中的mp3网址,它会弹出媒体播放器自动播放mp3 . 但这里我需要的只是要求用户确认在 UIWebview 媒体播放器中播放这首歌 . 是否可以访问 UIWebview 媒体播放器?如果是这样的话?请帮我

1 回答

  • 2

    是的,可以询问用户确认 .

    用户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]];
     }
    }
    

相关问题