Вопрос по ios, iphone – Воспроизведение / пересылка видео со скоростью 2x, 3x, 4x - iPhone SDK

3

Я хочу воспроизводить / пересылать видео в MPMoviePlayerController с разными скоростями. Может ли кто-нибудь предложить мне, как я это делаю.

Прямо сейчас я делаю перемотку вперед (на одной скорости), но через несколько секунд он возвращается на нормальной скорости.

Пожалуйста, предложите.

Ваш Ответ

2   ответа
0

Here is a code to Forward and BackWard Movie as 2x 3x 4x speed for MPMoviePlayerViewController

In .h File

@property(nonatomic) float currentPlaybackRate;

In .m File

- (void)viewDidLoad
{
    currentPlaybackRate=1.0; //video Play in Normal speed
}

Now on FastForward and FastBackward Button Action

[fastForward addTarget:self action:@selector(fastForward) forControlEvents:UIControlEventTouchUpInside];

[fastBackWard addTarget:self action:@selector(fastBackward) forControlEvents:UIControlEventTouchUpInside];

Action Code

-(void)fastForward
{
    [mp.moviePlayer pause];
    playPauseButton.selected=TRUE;
    if (currentPlaybackRate < 0.0) {
        currentPlaybackRate = 1.0;
    }

    if (currentPlaybackRate < 4.0) {
        currentPlaybackRate=currentPlaybackRate+1.0;
        NSLog(@"Forward::%f",currentPlaybackRate);
        mp.moviePlayer.currentPlaybackRate=currentPlaybackRate;
    }
}
-(void)fastBackward
{
    [mp.moviePlayer pause];
    playPauseButton.selected=TRUE;

    if (currentPlaybackRate > 0.0) {
        currentPlaybackRate = 0.0;
    }


    if (currentPlaybackRate > -4.0) {
        currentPlaybackRate=currentPlaybackRate-1.0;
        NSLog(@"BackWard::%f",currentPlaybackRate);
        mp.moviePlayer.currentPlaybackRate=currentPlaybackRate;
    }
}
4
MPMoviePlayerController Conforms to MPMediaPlayback protocol 
you can see the property currentPlaybackRate as :-
@property(nonatomic) float currentPlaybackRate 
A value of 0 represents that the video is stopped , a value of 1 indicates normal speed and further positive values indicate increased speed while negative ones indicate reverse .

поскольку это единственный метод, который возвращает воспроизведение к нормальному

для оптимизации вы можете использовать MPMoviePlayerController.movieSourceType, чтобы уменьшить задержку распознавания медиа и / или вызвать [MPMoviePlayerControllerInstance prepareToPlay], когда вы знаете, что пользователь собирается воспроизвести видео.
Хай. Спасибо за ответ. я делаю это но видео проигрывается очень медленно. Я думаю, что он работает нормально только тогда, когда видео уже буферизовано. пожалуйста, предложите. Mitesh Khatri
Возможно, вы захотите добавить свойство MPMoviePlayerController.autoPlay в соответствии с вашими потребностями приложения ... в соответствии с документацией Apple ". Этот метод вызывается автоматически при вызове метода play. Вызов его перед вызовом воспроизведения дает приемнику возможность быстрее подготовить элементы и может привести к уменьшению задержки при запуске воспроизведения. Однако вызов этого метода также может прервать любые активные аудиосеансы & quot; , Следовательно, это может быть полезно для уменьшения задержки, но иногда чистая скорость также играет роль в определении задержки.

Похожие вопросы