我使用UIWebView播放.mp3文件。使用Safari因为它给了我音频控件而没有额外的代码,我无法看到如何使用AVPlayer。它很简单并且运行良好,只有一个例外。 .mp3基于地区播放。它将正确播放第一个区域的音频文件。但是每个后续区域首先播放该区域的音频,然后立即播放第一个音频。所以,第一个区域播放audio_region_1。第二个区域触发audio_region_2,然后触发audio_region_1。第N个区域再次触发audio_region_n,然后再触发audio_region_1。它总是播放两个文件,第二个文件始终是应用程序中的第一个。启动,播放,关闭新的Safari视图,然后打开,播放和关闭第二个Safari视图。关于为什么或如何排除故障的任何想法?
NSURL *currentRegion = [[NSBundle mainBundle]URLForResource: regionIdentifier withExtension:@"mp3"];
NSURLRequest *currentRegionForSafari = [NSURLRequest requestWithURL: currentRegion];
[_viewWeb loadRequest: currentRegionForSafari];
NSLog(@" ** ** ** Narration shud have finished:%@.mp3", regionIdentifier);
提前感谢并原谅问题的简单性。这是我的第一个IOS应用程序。
答案 0 :(得分:0)
每次需要播放其他声音时,请确保您有不同的区域。
此外,我不确定它是否会对您有所帮助,只需尝试此代码:
[[NSURLCache sharedURLCache] removeAllCachedResponses];
NSURL *currentRegion = [[NSBundle mainBundle]URLForResource: regionIdentifier withExtension:@"mp3"];
NSURLRequest *currentRegionForSafari = [NSURLRequest requestWithURL: currentRegion];
[currentRegionForSafari setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
[_viewWeb loadRequest: currentRegionForSafari];
答案 1 :(得分:0)
基本问题是UIWebView缓存了之前发送给它的.mp3,并在当前加载请求完成后播放。有趣的是,它正在缓存第一个.mp3发送的不是最后一个,如你所料。无论如何,我评估了两个关于在另一个问题上找到的UIWebView的“清理内容”的建议。
这对我有用,在我的加载请求方法的入口处添加。
[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"about:blank"]]];
以下是其他问题的网址,如果它可以帮助其他人:
How to clean the content of UIWebView without loading an empty page?