2014-11-26 12 views
7

tôi dường như không thể ghi đè lên các loại AVAudioSession hoặc cổng khi âm thanh đang được chơi từ một WKWebView. Cùng một mã hoạt động hoàn hảo khi sử dụng một UIWebView bình thường.Setting AVAudioSession loại không ảnh hưởng đến âm thanh từ WKWebView

AVAudioSession *session = [AVAudioSession sharedInstance]; 
[session setCategory:AVAudioSessionCategoryPlayAndRecord error:&err]; 

Tôi cũng đã cố gắng kích hoạt sharedInstance như thế này, nhưng nó đã không giúp đỡ:

[session setActive: YES error: nil]; 

Đoạn mã trên không ảnh hưởng đến âm thanh phát ra từ một WKWebView. Tôi đã tìm thấy một số báo cáo trên Twitter rằng iOS 8.1 đang trộn âm thanh WKWebView với âm thanh ứng dụng nền, nhưng tôi không thể tìm thấy nguồn cho điều đó. Xem chủ đề twitter này để tham khảo: https://twitter.com/marcoarment/status/530881842900373504

+0

Bạn có muốn ứng dụng tiếp tục phát âm thanh của web trên nền không? – dcorbatta

+0

Không, tôi muốn chuyển âm thanh phát từ Loa sang Tai nghe và ngược lại. –

+0

Hi @LylePratt, hãy thử để kiểm tra các lỗi có thể trong '-setActive: Lỗi:' nếu một lỗi xảy ra, con trỏ được thiết lập để một đối tượng NSError mô tả lỗi. Có thể các đối tượng âm thanh khác (chẳng hạn như hàng đợi, chuyển đổi, trình phát hoặc trình ghi) hiện đang chạy không? – bl4stwave

Trả lời

0

Vì vậy, rõ ràng WKWebView chạy trong một quá trình riêng biệt từ ứng dụng của bạn. Điều này có thể có nghĩa là nó có riêng biệt AudioSession của nó từ AudioSession của ứng dụng của bạn. Đó là lý do tại sao các thay đổi đối với AudioSession của ứng dụng sẽ không ảnh hưởng đến webView. Và cũng là lý do tại sao nó hoạt động với UIWebView (không có quá trình riêng biệt). Ít nhất đó là những gì tôi thu thập được cho đến nay ...

Các giải pháp đối với tôi là để cho phép AudioSession ứng dụng của tôi để trộn với những người khác:

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord 
           withOptions:AVAudioSessionCategoryOptionMixWithOthers 
             error:&error]; 

Tất nhiên điều này có ý nghĩa khác nữa. Âm thanh của ứng dụng của bạn sẽ được trộn với tất cả âm thanh của các ứng dụng khác, không chỉ là lượt xem web của bạn.

+1

Xin chào, tôi đang cố gắng phát âm thanh js từ wkwebview và KHÔNG nên ngừng phát nhạc nền. Nhưng tôi không thể làm cho nó hoạt động, ý tưởng nào? – user2673664

Các vấn đề liên quan