1

MPMusicPlayerController の currentPlaybackRate プロパティを使用して、再生中の音楽トラックのテンポを調整しようとしています。速度が 0.90 未満または 1.13 を超える場合、このプロパティは期待どおりに機能しますが、1 のすぐ上と下の範囲では、テンポに変化がないように見えます。これが私が試していることです:

UIAppDelegate.musicPlayer = [MPMusicPlayerController iPodMusicPlayer]; 

...ライブラリからトラックを音楽プレーヤーにロードする

[UIAppDelegate.musicPlayer play];

- (void)speedUp{

        UIAppDelegate.musicPlayer.currentPlaybackRate =  UIAppDelegate.musicPlayer.currentPlaybackRate + 0.03125;           
}

- (void)speedDown
{

        UIAppDelegate.musicPlayer.currentPlaybackRate = UIAppDelegate.musicPlayer.currentPlaybackRate - 0.03125;

}

currentPlaybackRate の値を監視して、正しく設定されていることを確認できますが、0.9 または 1.13 のしきい値に達するまで、再生テンポに違いはないようです。誰かがこの問題について何かガイダンスや経験を持っていますか?

4

2 に答える 2

2

私は専門家ではありませんが、この現象は、ピッチを上げたり下げたりせずに再生速度を変更するために使用されるアルゴリズムのアーティファクトにすぎないのではないかと思います。これはトリッキーな作業であり、ここではあまり歪みなくリアルタイムで実行する必要があるため、おそらくテンポの整数倍が必要です。タイム ストレッチに関するウィキペディアの記事http://en.wikipedia.org/wiki/Audio_timescale-pitch_modificationを参照してください。

于 2013-04-24T03:04:41.510 に答える