在UIWebView中加载mp3

时间:2014-05-29 07:27:30

标签: ios objective-c ipad uiwebview nsdata

我从base64 NSData

获得NSString
NSString * fileBytes = @"...."; //base 64 string
NSData * bytes = [[NSData alloc] initWithBase64EncodedString:fileBytes options:0];

我将NSData加载到UIWebView

[self.webView loadData:bytes
              MIMEType:@"audio/mpeg3"
      textEncodingName:@"UTF-8"
               baseURL:nil];

但这就是我所看到的

enter image description here

我对许多文件类型(PDF,png,jpg,doc,dock,xls ecc)使用相同的过程,并且工作正常。

想法?

1 个答案:

答案 0 :(得分:3)

最近我遇到了这样的情况,我搜索了很多。最后我发现了两种方法。

  1. 最好的方法:只需使用MPMoviePlayerController

    实现您的代码
    MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL: myURL];
    [player prepareToPlay];
    [player.view setFrame: myView.bounds];  // player's frame must match parent's
    [myView addSubview: player.view];
    // ...
    [player play];    
    
  2. 如果您真的想使用UIWebView,那么请考虑嵌入式HTML5 <audio>标记。

    <audio controls> <source src="horse.ogg" type="audio/ogg"> <source src="horse.mp3" type="audio/mpeg"> Your browser does not support the audio element. </audio>

  3. 并使用方法

    加载HTMLString
    - (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL
    

    但我个人更喜欢启用自动播放的第一个解决方案。