我有UIWebView
播放音乐,当我使用AVPlayer
播放音频时,它们一起播放。
我尝试使用AVAudioSession
来控制它。但不行。
这是我的代码
- (IBAction)click:(id)sender {
NSURL *url = [NSURL URLWithString:@"http://mmmono.qiniudn.com/1c16bee1df0dbfbfea04ae11d8d8d021.mp3"];
self.player = [AVPlayer playerWithURL:url];
[self.player play];
[[AVAudioSession sharedInstance]setCategory:AVAudioSessionCategoryAmbient error:nil];
[[AVAudioSession sharedInstance] setActive: YES error: nil];
}
- (void)viewDidLoad {
[super viewDidLoad];
self.webView.mediaPlaybackRequiresUserAction = NO;
NSURL *url = [NSURL URLWithString:@"http://mmmono.com/g/meow/560885/"];
[self.webView loadRequest:[NSURLRequest requestWithURL:url]];
}
答案 0 :(得分:1)
永远不要尝试这个但你可以使用javascript和UIWebView stringByEvaluatingJavaScriptFromString来查找WebView上的所有音频标签,并使用javascript" pause()"设置每个DOM停止播放音频。功能如此。
准备javascript功能。 (如果你有html,那个网页的javascript,你可以直接在.js文件或<script>
标签中写下函数)
NSString *pauseScriptString = @"function pauseAllAudio() {\
var audios = document.getElementsByTagName(\"audio\");\
if(audios.length > 0){\
for(var i = 0; i< audios.length; i++){\
audios[i].pause();\
}\
}\
}";
将javascript加载到webview,以便稍后调用它。
[yourWebview stringByEvaluatingJavaScriptFromString: pauseScriptString];
执行pausescript
[youWebView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"pauseAllAudio()"]];