2015-12-11 17 views
11

Khi phát âm thanh từ thiết bị iOS được kết nối với Apple TV qua AirPlay (sử dụng iOS9.2), giây đầu tiên phát âm thanh đầu tiên bị ngắt. Hành vi không mong muốn này không phải là ứng dụng cụ thể, mà là toàn bộ hệ thống (ví dụ: ứng dụng chính thức của Apple cũng có lỗi này).Làm thế nào để giảm bớt cắt khi chơi âm thanh bằng cách sử dụng sóng?

Xem https://forums.developer.apple.com/thread/28086

Có một workaround nơi đầy đủ audio file có thể được chơi? Ví dụ: thêm blank sounds trước khi phát tệp? Hoặc thay đổi cách gọi số API? Hoặc tôi có nên đợi bản sửa lỗi chính thức của Apple không?

+0

Bạn nên chờ đợi cho việc sửa chữa dù sao đi nữa. Nhưng hãy xem xét việc hack này. Nếu âm thanh của bạn không phát ra âm thanh trong hai giây đầu tiên, nghĩa là thêm âm thanh trống dài hai giây vào âm thanh gốc của bạn, chẳng hạn như tiếng nấc cục đồng bộ giữa ứng dụng và TV có thể bị lừa. Sử dụng ban nhạc garage cho việc này. Hoặc sử dụng luồng trong ứng dụng của bạn như GCD. dispatch_async cho các hoạt động không đồng bộ. –

+0

Tôi vừa thực hiện một thử nghiệm sử dụng phiên bản mới nhất (tính đến năm 20160217) của iOS 9.3 beta 3 (13E5200d). Việc cắt chỉ xuất hiện lần đầu tiên và không xuất hiện lại âm thanh tiếp theo. Điều này tương phản với iOS 9.2 xảy ra mỗi lần phát lại âm thanh. –

Trả lời

0
  1. Sự cố này dường như không xảy ra trên bất kỳ bản phát hành iOS hiện tại nào nên đề xuất đầu tiên của tôi là nâng cấp.
  2. Nếu bạn phải sử dụng iOS 9.2 thì tôi khuyên bạn nên phát tệp âm thanh trống trong 2 giây sau đó bắt đầu tệp âm thanh đầy đủ của bạn.

Mẫu mã:

audioPlayer.actionAtItemEnd = AVPlayerActionAtItemEndNone; 

[[NSNotificationCenter defaultCenter] addObserver:self 
               selector:@selector(playEnded:) 
                name:AVPlayerItemDidPlayToEndTimeNotification 
               object:[audioPlayer currentItem]]; 

- (void)playEnded:(NSNotification *)notification 
{ 
    // Start the full audio file here 
} 
Các vấn đề liên quan