如何阻止UIWebView播放mp3音频?

8
我正在iPad应用程序中将MP3文件加载到UIWebView控件中,我有一个名为doneUIButton,用户希望关闭UIWebView并停止音乐播放。以下是代码片段:
// points to the mp3 file path
NSURL *url = [NSURL fileURLWithPath:self.sFilePath]; 
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[web loadRequest:request];

当用户点击“完成”时,我会执行如下操作:
[self.webview removeFromSuperview];
[self.webview release];

但这并不妨碍音乐播放,我注意到在UIWebView上加载mp3文件会打开QuickTime播放器,这是正确的方式吗?

非常感谢您的任何指导或帮助。


2个回答

5

我想我以前试过这个,但我会在明天第一时间再试一次。 - Ahmad Kayyali
如果您只是使用Web视图播放音频,我建议使用上面iceydee的解决方案... - nielsbot

1

我建议您使用AVAudioPlayer自己播放声音(这可能是在iOS中播放和控制声音最简单的方法)。

像这样:

NSURL *url = [NSURL fileURLWithPath:self.sFilePath];
NSData *mySound = [NSData dataWithContentsOfURL:url];
AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithData:mySound error:NULL];
audioPlayer.numberOfLoops = 0;
[audioPlayer play];

你可以像这样简单地停止声音:

[audioPlayer stop];

或者

[audioPlayer pause];

不要忘记在您的项目中包含AVFoundation.framework。


@iceydee:我会尝试并尽快回复您。 - Ahmad Kayyali
@iceydee:感谢您的回答,虽然不是我预期的答案。我会等一段时间,看看是否有人能帮助我解决UIWebView问题,如果没有人,我将接受您的答案并使用您的解决方案。谢谢。 - Ahmad Kayyali
您是否希望向用户显示播放/暂停控件? - iceydee
@AhmadTK,但是我给你的代码片段,它不是已经实现了目的吗?当用户点击按钮时,只需调用[audioPlayer stop]。如果您希望曲目永远循环播放,可以将numberOfLoops更改为-1,我认为是这样的。我会将audioPlayer放在属性中,以便其他类/视图可以轻松访问它。 - iceydee
@iceydee:非常感谢你的建议,我现在不在办公室,明早第一件事就会尝试一下:) - Ahmad Kayyali
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接