2010-10-03 39 views
23

Tôi đang viết một ứng dụng ghi âm thanh. Tôi đang xem xét tính khả thi của việc hỗ trợ đa nhiệm trong khi thực hiện ghi âm (trong nền).Đa nhiệm trên iOS cho ứng dụng Ghi âm thanh

Câu trả lời có vẻ là không có từ những gì tôi đã đọc cho đến nay, đặc biệt vì chương trình có nghĩa là phát hành mọi tài nguyên hệ thống đang được sử dụng khi tắt.

Vì vậy, tôi tự hỏi, liệu có thể cho phép người dùng chuyển sang ứng dụng khác trong iOS trong khi ứng dụng của tôi tiếp tục chụp âm thanh trong nền không?

+0

Xin chào, tôi đang cố gắng làm điều tương tự. Bạn đã làm như tc nói và đặt nó cho cả hai "voip" và "âm thanh"? Bạn đã thành công trong việc ghi âm chưa? – Namratha

+1

@Namratha Đừng đặt nó thành voip nếu bạn không phải là nhà cung cấp voip. Ứng dụng của chúng tôi đã bị từ chối vì lý do đó. Ghi âm trong nền không phải là một điều xấu để làm như nó quay ra. Hệ điều hành nhận thức được kể từ khi bạn kết nối với AVAudioSession. Chỉ cần sử dụng nó như nó đã được và tất cả mọi thứ đã được sử dụng tốt. – dineth

+0

Ồ. Cảm ơn rất nhiều cho lời khuyên. Vậy ghi âm nền có hoạt động không? Tuyệt quá! Làm thế nào chính xác bạn đã làm điều đó, xin vui lòng? – Namratha

Trả lời

23

Bạn có thể. Skype thực hiện điều này.

Có thể bạn cần đặt <key>UIBackgroundModes</key><array><string>audio</string></array> trong Info.plist và bạn cần đảm bảo rằng phiên âm thanh đang hoạt động/đang chạy/bất cứ điều gì trước khi chuyển ứng dụng (giả định là bạn sẽ không đột nhiên bắt đầu ghi/phát nhạc/bất cứ khi nào ứng dụng của bạn ở chế độ nền).

The docs nói rằng "âm thanh" cho phép bạn phát âm thanh dưới nền, nhưng có lẽ điều này cũng áp dụng cho việc ghi âm. Nếu nó không hoạt động, có một vài điều bạn có thể thử:

  • Đặt cả hai "voip" và "audio".
  • Phát im lặng (điều này có thể dễ dàng nhất với API hàng đợi âm thanh).
+1

"có lẽ điều này cũng áp dụng cho ghi âm" - theo kinh nghiệm của tôi, đó là các loại giả định mà bạn không muốn đưa ra quyết định kinh doanh. –

+0

Đó là lý do tại sao bạn kiểm tra xem nó có hoạt động trên thiết bị hay không. –

+12

Chỉ muốn cập nhật câu trả lời này. Không sử dụng VOIP nếu ứng dụng của bạn không thực hiện VOIP. Nó có để kích hoạt hoạt động mạng trong khi ứng dụng ở chế độ nền. Sử dụng "âm thanh" làm các trick. Ứng dụng của chúng tôi đã bị từ chối khi lần đầu tiên có voip. – dineth

5

Apple dường như đã chấp nhận ứng dụng cho iOS4 tiếp tục ghi âm khi đặt ở chế độ nền, vì vậy đây có thể là bằng chứng về sự tồn tại. Ứng dụng phải tự khai báo là âm thanh nền, phân bổ trước tất cả các tài nguyên âm thanh và bắt đầu ghi âm trước khi ứng dụng được chạy nền và cũng có thể bị giết nếu bộ nhớ hoặc tài nguyên âm thanh được ứng dụng nền trước yêu cầu. Vì vậy, bất kỳ việc sử dụng tài nguyên hệ thống nào cũng phải là tối thiểu tuyệt đối.

+0

Tôi nghĩ rằng tất cả các ứng dụng nền đã bị giết sau 10 phút ... –

+1

Không nếu tuyên bố trong plist là 1 trong 3 loại đặc biệt cho nền, và đủ nguồn lực có sẵn. – hotpaw2

+0

Đó là tin tuyệt vời! Bạn không có liên kết với điều này phải không? –

1

Có!

Ứng dụng của bạn sẽ tiếp tục ghi/phát âm thanh khi được gửi tới nền.

Đừng cố gắng sử dụng VOIP trừ khi bạn không muốn xuất bản ứng dụng của mình lên cửa hàng táo (nói rằng bạn sẽ phát ứng dụng của mình bằng cách sử dụng các cửa hàng bên thứ ba cài đặt hồ sơ cấp phép).

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