【问题标题】:IOS-Ask the user for play song in uiwebview media playerIOS-要求用户在uiwebview媒体播放器中播放歌曲
【发布时间】:2014-09-19 08:12:49
【问题描述】:

如果我点击UIWebView 中的 mp3 url,它会弹出媒体播放器以自动播放 mp3。 但在这里我需要的只是要求用户确认在UIWebview媒体播放器中播放歌曲。是否可以访问UIWebview媒体播放器?如果是怎么回事? 请帮帮我

【问题讨论】:

    标签: ios uiwebview media-player


    【解决方案1】:

    是的,可以要求用户确认。

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

    【讨论】:

    • 当url后缀包含“.mp3”时,是否可以避免UIWebview媒体播放器弹出?
    • 是的,有可能。您必须检查后缀中的“.mp3”。如果它包含.mp3,则返回YES直接播放。否则检查其他扩展名并返回NO。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多