【发布时间】:2018-01-15 08:46:46
【问题描述】:
当我的音频播放完毕后,我正在尝试从 ObjC 向 JavaScript 传递通知。
我目前调用 Obj C 来播放音频(来自 JS):
window.webkit.messageHandlers.playLetter.postMessage(audioSrc);
在 ObjC 方面,我有以下方法:
- (void) userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)scriptMessage {
if([scriptMessage.name isEqualToString:@“playLetter”]){
_contentAudioPlayer = [[AVPlayer alloc] initWithURL:[NSURL URLWithString:scriptMessage.body]];
[_contentAudioPlayer play];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playerItemDidReachEnd) name:AVPlayerItemDidPlayToEndTimeNotification object:_contentAudioPlayer.currentItem];
}
}
当音频结束播放时通知中心会调用此方法:
- (void) playerItemDidReachEnd {
NSLog(@"audio ended");
}
每次音频结束即为成功。
我的问题是:
如何通知我的 JavaScript 音频已结束?在 JS 方面,我需要“等待”音频结束以进行预期的操作过程
如果您需要更多信息,请告诉我。
提前致谢。
【问题讨论】:
标签: javascript ios objective-c audio wkwebview