I am writing an application in which I need to record audio and play it backwards. I have recorded audio into a caf file using AVAudioRecorder and I have been able to play it forwards with both AVAudioPlayer and MPMoviePlayerController. I tried setting the MPMoviePlayerController.currentPlaybackRate to -1 but it won't make any noise. From researching I found that I will need to reverse the audio file byte by byte, but I am not sure how to do that. Is there a way to read a caf file to an array and write from the array? Any help would be appreciated.
iPhone play caf audio backwards
503 Views Asked by WolfLink At
1
There are 1 best solutions below
Related Questions in IPHONE
- Borrow mutable and immutable reference in the same block
- Linking to a static lib compiled with MSVC
- Using a no-method trait implementation in a different module
- No error for two traits implementing the same method
- How are the generic functions and types stored in an rlib?
- Is it possible to find an element in a Vec<T> and remove it?
- What does & actually do?
- unresolved name rand::thread_rng
- Use of undeclared type that is defined in another file
- Creating byte buffers in rust
Related Questions in OBJECTIVE-C
- Borrow mutable and immutable reference in the same block
- Linking to a static lib compiled with MSVC
- Using a no-method trait implementation in a different module
- No error for two traits implementing the same method
- How are the generic functions and types stored in an rlib?
- Is it possible to find an element in a Vec<T> and remove it?
- What does & actually do?
- unresolved name rand::thread_rng
- Use of undeclared type that is defined in another file
- Creating byte buffers in rust
Related Questions in IOS
- Borrow mutable and immutable reference in the same block
- Linking to a static lib compiled with MSVC
- Using a no-method trait implementation in a different module
- No error for two traits implementing the same method
- How are the generic functions and types stored in an rlib?
- Is it possible to find an element in a Vec<T> and remove it?
- What does & actually do?
- unresolved name rand::thread_rng
- Use of undeclared type that is defined in another file
- Creating byte buffers in rust
Related Questions in AUDIO
- Borrow mutable and immutable reference in the same block
- Linking to a static lib compiled with MSVC
- Using a no-method trait implementation in a different module
- No error for two traits implementing the same method
- How are the generic functions and types stored in an rlib?
- Is it possible to find an element in a Vec<T> and remove it?
- What does & actually do?
- unresolved name rand::thread_rng
- Use of undeclared type that is defined in another file
- Creating byte buffers in rust
Related Questions in CAF
- Borrow mutable and immutable reference in the same block
- Linking to a static lib compiled with MSVC
- Using a no-method trait implementation in a different module
- No error for two traits implementing the same method
- How are the generic functions and types stored in an rlib?
- Is it possible to find an element in a Vec<T> and remove it?
- What does & actually do?
- unresolved name rand::thread_rng
- Use of undeclared type that is defined in another file
- Creating byte buffers in rust
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
I have worked on a sample app, which records what user says and plays them backwards. I have used CoreAudio to achieve this. Link to app code.
As each sample is 16-bits in size(2 bytes)(mono channel)(this depends on what properties you have used for recording). You can load each sample at a time by copying it into a different buffer by starting at the end of the recording and reading backwards. When you get to the start of the data you have reversed the data and playing will be reversed.
Hope this helps.