2012-02-29 7 views
8

Làm cách nào để ghi lại âm thanh bằng iOS? Không phải bản ghi đầu vào từ micrô, nhưng tôi muốn có thể ghi/ghi lại âm thanh đang phát trong ứng dụng của mình?Ghi lại âm thanh iOS

Vì vậy, ví dụ: Tôi bắt đầu một phiên ghi âm và bất kỳ âm thanh nào chỉ phát trong ứng dụng của tôi, tôi muốn ghi lại nó vào một tệp?

Tôi đã thực hiện nghiên cứu về điều này nhưng tôi nhầm lẫn với những gì cần sử dụng vì có vẻ như việc trộn các khung âm thanh có thể gây ra sự cố?

Tôi chỉ muốn có thể chụp và lưu âm thanh phát trong ứng dụng của mình.

+0

Bạn phát âm thanh trong ứng dụng như thế nào? – sbooth

+0

Tôi sẽ sử dụng đơn vị âm thanh. Máy ghi âm sẽ là một đơn vị? – jarryd

+0

chỉ để làm rõ, khi bạn nói rằng bạn muốn ghi lại âm thanh phát trong ứng dụng của bạn (không phải là micro), bạn chỉ có nghĩa là bạn muốn ghi trực tiếp ra khỏi card âm thanh, đúng không? Vì vậy, nếu một người nào đó đầu tai nghe trong họ vẫn có thể ghi lại bất cứ điều gì họ sẽ nghe b. – luca590

Trả lời

4

Vâng, nếu bạn đang tìm cách chỉ ghi lại âm thanh mà ứng dụng CỦA BẠN tạo ra, thì có điều này là rất nhiều khả năng.

Điều không thể, là ghi lại tất cả âm thanh được xuất qua loa. (EDIT: Tôi chỉ muốn làm rõ rằng không có cách nào để ghi lại đầu ra âm thanh được sản xuất bởi các ứng dụng khác. Bạn chỉ có thể ghi lại các mẫu âm thanh mà BẠN sản xuất).

Nếu bạn muốn ghi lại đầu ra âm thanh của ứng dụng, bạn phải sử dụng đơn vị âm thanh io từ xa (http://atastypixel.com/blog/using-remoteio-audio-unit/).

Tất cả những gì bạn thực sự cần làm là sao chép bộ đệm phát lại sau khi bạn điền vào.

cũ)

memcpy(void *dest, ioData->mBuffers[0].mData, int amount_of_bytes); 
1

Không có API công khai để chụp hoặc ghi lại tất cả đầu ra âm thanh chung từ ứng dụng iOS.

1

Kiểm tra các ứng dụng mẫu MixerHostAudio từ Apple. Đó là một cách tuyệt vời để bắt đầu tìm hiểu về các đơn vị âm thanh. Một khi bạn đã nắm bắt được điều đó, có rất nhiều hướng dẫn trực tuyến nói về việc thêm ghi âm.

2

Điều này có thể bằng cách quấn một Core Audio công ích tập CAAudioUnitOutputCapturer http://developer.apple.com/library/mac/#samplecode/CoreAudioUtilityClasses/Introduction/Intro.html

Xem trả lời của tôi trong câu hỏi này cho các lớp wrapper. Properly use Objective C++

+0

Bạn có nghĩ rằng cũng có thể ghi âm từ các ứng dụng khác không? Bạn có thể ghi lại âm thanh thuần túy, ví dụ như Spotify đang sản xuất không? –

+0

@PiotrDabkowski iOS thực hiện hộp cát, vì vậy âm thanh có thể là bản địa của ứng dụng. Có những thứ như âm thanh giữa các ứng dụng, trong đó, Spotify trong trường hợp của bạn phải hỗ trợ để bạn có thể nhận âm thanh từ nó. – lppier