3

xcodeで音を遅くすることができるかどうか疑問に思っています。つまり、xcode のサポート ファイルに .mp3 ファイルを追加し、速度を上げたり下げたりできるアプリを作成します。たとえばスライダーで。それは可能ですか?はいの場合、誰かが私にアイデアを手伝ってくれますか? ありがとう

4

2 に答える 2

2

AVAudioPlayer には、目標を達成するのに役立つ rate プロパティがあります。 http://developer.apple.com/library/IOS/#documentation/AVFoundation/Reference/AVAudioPlayerClassReference/Reference/Reference.html

オーディオ プレーヤーの再生速度。@property フロートレート

討論

このプロパティのデフォルト値 1.0 は、通常の再生速度を提供します。使用可能な範囲は、1/2 倍速再生の 0.5 から 2 倍速再生の 2.0 までです。

オーディオ プレーヤーの再生速度を設定するには、enableRate プロパティの説明に従って、最初に速度調整を有効にする必要があります。

AVAudioPlayer のレートに関する良い SO 投稿も見つけました: AVAudioPlayer rate

あなたが言及したように、スライダーを 0.5 から 2.0 の値で設定し、valuechanged を使用してオーディオ プレーヤーのレートを変更できます。

- (IBAction)changeValue:(UISlider *)sender
{
    //made up assumed ivar names
    if ([_audioPlayer respondsToSelector:@selector(setEnableRate:)])
        _audioPlayer.enableRate = YES;
    if ([_audioPlayer respondsToSelector:@selector(setRate:)])
        _audioPlayer.rate = [NSNumber numberWithFloat:slideValue];
}
于 2013-01-03T15:15:09.110 に答える
0

サンプル レートより速いまたは遅いレートで PCM オーディオを再生すると、ピッチが変化し、かなりのアーティファクトも発生します。これで問題ない場合は、MP3 を PCM オーディオにデコードし、ダイレクト デジタル シンセシス オシレーターを使用して再生レートを制御する方法を使用します。

ピッチを維持しながら速度を変更したい場合は、オーディオのタイムストレッチ アルゴリズムが必要です。

DSP DimensionのDirac3は、それが可能な商用製品であり、iOS アプリケーションで使用するためのライセンスを取得できます。他の商用ソリューションが存在します。

DSP Dimension のブログでは、FFT を使用してピッチシフトを実装する方法の基本に関する役立つチュートリアルを提供しています。タイム ストレッチは、本質的に同じプロセスです。ただし、DIRAC プラグインには、彼らが教えてくれないかなりの秘密のソースがあります。

電子工学、物理学、または数学の卒業生でない限り、空白を埋めるのはおそらく難しいことに注意してください。

于 2013-01-03T15:17:22.220 に答える