3

AVAudioRecorder@1.5xまたは2.0xの速度で録音したオーディオを再生できるようにしたいと思います。AVAudioPlayerにはそれをサポートするものは何もありません。iPhone 3.x SDKを使用してこれを実現する方法について、可能であればコードを使用して、いくつかの提案をいただければ幸いです。再生速度の向上を補うためにピッチを下げることにはあまり関心がありませんが、そうすることができれば最適です。

4

3 に答える 3

3

サンプル レートの変更は、テープ レコーダーをより速く再生した場合と同じように機能するはずです。すべてが高音になります。ピッチを同じに保つには、AUPitch エフェクトを含む Audio Unit グラフを設定し、サンプルレートを上げるのと同じ比率でピッチを下げる必要があります。

于 2010-03-21T16:35:08.090 に答える
2

この質問を参照してください。つまり、Audio Queue Services のような別の API を使用する必要があります。簡単なハックを試してみたい場合は、オーディオ ファイルのサンプル レート プロパティを 2 倍にしてみてください。それはおそらくうまくいかないでしょう。また、同じピッチを維持しながら再生速度を調整することは、CPU の負荷がかなり高いことに注意してください。「タイム ストレッチ」と呼ばれる利用可能な手法の 1 つを使用する必要があります。また、まだ気づいていない方のために説明すると、iPhone でオーディオを使って複雑なことを行うのは大きな苦痛です。なぜなら、Apple のドキュメントは一般的に非常に悪いか存在しないからです。

于 2010-03-11T19:48:43.890 に答える
1

オーディオをより速くまたはより遅く再生したい場合は、avAudioPlayer に組み込みメソッドがあります。AudioPlayer Rate プロパティを試しましたか? Swiftでは次のようになります-

    audioP = try! AVAudioPlayer(contentsOf: URL(fileURLWithPath: selectedPath), fileTypeHint: "caf")
    audioP.enableRate = true
    audioP.prepareToPlay()
    audioP.rate = 1.5
    audioP.play()
于 2017-09-14T07:32:50.120 に答える