Как я могу приостановить звук в UIWebView при воспроизведении звука с помощью AVPlayer
У меня есть 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]];
}
1 ответ
Никогда не пытайтесь сделать это, но вы можете использовать javascript и UIWebView stringByEvaluatingJavaScriptFromString, чтобы найти все аудио-теги в вашем WebView и установить каждую остановку воспроизведения DOM-аудио, используя функцию javascript "pause()", например, так.
Подготовьте функцию 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];
Выполнить паузу
[youWebView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"pauseAllAudio()"]];