2010-02-13 28 views
5

Có ai đó đã có thể làm cho http://www.surina.net/soundtouch/ công việc cho iPhone?SoundTouch cho iPhone

Simple Xcode Demo sẽ là hữu ích.

Tôi chỉ muốn đóng một soundeffect với một số thao tác sân.

thx chris

+0

Tôi không chắc chắn cách tích hợp SoundTouch để biên dịch trên iOS, nhưng anh chàng trong câu hỏi này đã làm cho nó hoạt động: http://stackoverflow.com/q/3963827/207682 – ugiflezet

Trả lời

0

Cách tốt nhất để thực hiện các hiệu ứng âm thanh sử dụng SoundTouch đang sử dụng cũng SoundStretch.

Bạn có thể tải mã nguồn của cả hai từ đây http://www.surina.net/soundtouch/sourcecode.html

SoundStretch là một chương trình dòng lệnh mà thực hiện SoundTouch tác thư viện trên các tập tin âm thanh WAV. Chương trình này là một mã nguồn dụ như thế nào thói quen thư viện SoundTouch thể được sử dụng để xử lý âm thanh trong các chương trình khác, nhưng nó có thể được sử dụng như một công cụ xử lý âm thanh độc lập là tốt.

tính năng SoundStretch:

  • Đọc & viết .wav tập tin âm thanh
  • Cho phép điều chỉnh thông số rất rộng khoảng:
    • Tempo & Playback Rate có thể điều chỉnh trong phạm vi -95% .. 5000 %
    • Âm thanh Pitch (khóa) có thể điều chỉnh trong phạm vi -60 .. +60 semitones (+ - 5 octaves).
  • Phát hiện nhịp mỗi giây (BPM) có thể điều chỉnh tiến độ để phù hợp với tỷ lệ BPM mong muốn.
  • mã nguồn đầy đủ sẵn
  • dòng lệnh giao diện cho phép sử dụng SoundStretch tiện ích cho chế biến .wav tập tin âm thanh trong chế độ hàng loạt
  • Hỗ trợ xử lý .wav suối âm thanh thông qua đường ống đầu vào/đầu ra tiêu chuẩn
  • SoundStretch sử dụng các thói quen thư viện SoundTouch để xử lý âm thanh.

Ví dụ về sử dụng:

NSArray *effects = [NSArray arrayWithObjects:@"-rate=-22", nil]; 
NSURL *audio = [self base:input output:output effects:effects]; 

đâu base:output:effects được định nghĩa là:

- (NSURL *)base:(NSURL *)input output:(NSURL *)output effects:(NSArray *)effects{ 
    int _argc = 3 + (int)[effects count]; 

    const char *_argv[]={"createWavWithEffect",[[input path] UTF8String], [[output path] UTF8String],[@"" UTF8String],[@"" UTF8String],[@"" UTF8String],[@"" UTF8String],[@"" UTF8String],[@"" UTF8String],[@"" UTF8String],[@"" UTF8String],[@"" UTF8String]}; 

    for (int i=0; i<[effects count]; i++) { 
     _argv[i+3] = [effects[i] UTF8String]; 
    } 
    createWavWithEffect(_argc, _argv); 

    // IMPORTANT! Check the file size, maybe you will need to set by yourself 

    return output; 
} 

Nếu bạn không muốn để biên dịch một mình SoundTouch, tôi đã chia sẻ một Kho lưu trữ GitHub với các thư viện đó được biên soạn cho armv7, armv7s, arm64, i386x86_64

https://github.com/enrimr/soundtouch-ios-library

Và nếu bạn muốn sử dụng SoundTouch một mình mà không sử dụng SoundStretch, bạn phải thêm SoundTouch thư mục (trong đó bao gồm libSoundTouch.a và thư mục với tiêu đề) trong dự án Xcode của bạn.

Đối với dự án SWIFT:

Lập trình với SWIFT bạn không thể nhập một .h vì vậy bạn sẽ cần phải tạo một file .h tên <Your-Project-Name>-Bridging-Header-File.h Sau đó tham khảo nó trong các dự án của bạn xây dựng các thiết lập (dưới "Swift Trình biên dịch "tìm" Mục tiêu C Bridging Header ") với:

$(SRCROOT)/<Your-Project-Name>-Bridging-Header.h 

Và bây giờ bạn phải có khả năng sử dụng lớp SoundTouch.

Đối với dự án Objective-C:

Bao gồm các dòng sau

#include "SoundTouch.h" 

trong tập tin điều khiển của bạn.

+0

cách sử dụng "createWavWithEffect" cảm ơn bạn. Tôi đang sử dụng SoundTouch 1.8 – user1561904