簡體   English   中英

iOS UIWebView loadRequest

[英]iOS UIWebView loadRequest

我正在使用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);
  1. 我應該使用webViewDidFinishLoad之類的東西來顯式調用stopLoading之類的嗎?
  2. 日志僅顯示當前區域的我的NSLog消息,即regionIdentifier的期望值。
  3. 日志顯示了兩個與上述行為匹配的“設置電影路徑:”實例。

在此先感謝並原諒問題的簡單性。 這是我的第一個IOS應用。

每次需要播放其他聲音時,請確保您具有不同的區域。

另外,我不確定它是否對您有幫助,請嘗試以下代碼:

[[NSURLCache sharedURLCache] removeAllCachedResponses];
NSURL *currentRegion = [[NSBundle mainBundle]URLForResource: regionIdentifier withExtension:@"mp3"];
NSURLRequest *currentRegionForSafari = [NSURLRequest requestWithURL: currentRegion];
[currentRegionForSafari setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
[_viewWeb loadRequest: currentRegionForSafari];

根本問題是UIWebView會緩存發送給它的先前的.mp3,並在當前加載請求完成后對其進行播放。 有趣的是,它緩存的是第一個.mp3,而不是您所期望的最后一個。 無論如何,我評估了關於在另一個問題上發現的UIWebView的“清理內容”的兩個建議。

這對我有用,添加到我的負載請求方法中。

 [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"about:blank"]]];

這是其他問題的網址,它是否可以幫助其他人:

如何在不加載空白頁面的情況下清除UIWebView的內容?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM