MPMusicPlayerController Регулировка скорости - PullRequest
4 голосов
/ 01 марта 2011

HI,

Есть ли способ отрегулировать скорость песни, воспроизводимой MPMusicPlayerController?

Я искал везде, но не нашел ничего полезного.Если нет способа сделать это, где я могу найти пример, который делает это с другими компонентами?Некоторые говорят, что OpenAL, но я не могу найти какой-либо четкий способ использовать библиотеку iPod с этим и изменить скорость песни ...

В основном мне нужно:

  1. Пользователь выбирает песню из библиотеки iPod через MPMusicPlayerController
  2. У вас есть 2 кнопки: замедление и ускорение

Если пользователь нажимает «Замедление», скоростьПесня замедляется, скажем, на 5% или что-то в этом роде."Ускорение" наоборот.

Я действительно надеюсь, что кто-то может помочь мне с этим!

Заранее спасибо!

Ответы [ 3 ]

4 голосов
/ 26 мая 2014

Вы можете сделать это начиная с iOS 3.2 и выше -

[musicPlayer play];
[musicPlayer setCurrentPlaybackRate:2.0];

Ссылка: https://developer.apple.com/library/ios/documentation/mediaplayer/reference/MPMediaPlayback_protocol/Reference/Reference.html#//apple_ref/occ/intfp/MPMediaPlayback/currentPlaybackRate

1 голос
/ 24 мая 2012

Вы можете использовать AVAudioPlayer и AVPlayer для вышеуказанной цели.
Они имеют свойство rate, которое может устанавливать скорость песни.

[AVPlayer setRate:1.25];  // 25% faster

Однако AVPlayer не может изменить скорость на 5%но 25% и AVAudioPlayer работает для iOS 5 и выше.
Если вы хотите выбрать другую альтернативу, тогда Dirac - лучший вариант.Попробуйте DIRAC 3 LE , что бесплатно.

Используйте эту ссылку , чтобы получить представление о том, как использовать Dirac.Для получения дополнительной информации, дайте мне знать.

@ girish_vr

0 голосов
/ 01 марта 2011

Нет, вы не можете сделать это, используя только MPMusicPlayerController.

Если вы не возражаете, что высота звука увеличивается или уменьшается пропорционально изменениям скорости, вы можете использовать ресэмплер OpenAL после преобразования вашегоЗвуковой файл в необработанные файлы сэмплов PCM или буферы.

Если вы не хотите, чтобы высота звука изменялась, вам нужны методы растяжения / изменения / коррекции шага DSP.OpenAL не может сделать это, но есть коммерческие библиотеки DSP (может быть DIRAC), которые могут сделать это на iOS.Вы также можете попробовать написать свой собственный фазовый вокодер, но это нетривиальный код цифровой обработки сигналов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...