Как использовать вибрацию при записи iphone5 IOS?
Я работаю над приложением iphone5, и мне нужен совет по вибромотору. Я поглядел на вещи, но не могу найти, как я могу вручную повернуть свой iPhone из кода. Пожалуйста, направьте меня... или дайте любую ссылку или идеи...
Что я хочу сделать, это вибрировать телефон во время записи видео.
но моя проблема в том, что когда я запускаю вибрацию, она не может записать видео.. я обнаружил, что он не будет работать, когда звук записывается во время работы.. поэтому я попытался отключить звук во время записи, но он не работает до сих пор
ниже мой код..
//
// APPViewController.m
//
//
// Created by Rafael Garcia Leiva on 29/04/13.
// Copyright (c) 2013 Appcoda. All rights reserved.
//
#import "APPViewController.h"
#import <AudioToolbox/AudioToolbox.h>
#import <AVFoundation/AVFoundation.h>
@interface APPViewController ()
@end
@implementation APPViewController
- (void)viewDidLoad {
[super viewDidLoad];
}
- (void)viewDidAppear:(BOOL)animated {
self.movieController = [[MPMoviePlayerController alloc] init];
[self.movieController setContentURL:self.movieURL];
[self.movieController.view setFrame:CGRectMake ( 0, 0, 320, 476)];
[self.view addSubview:self.movieController.view];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(moviePlayBackDidFinish:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:self.movieController];
[[MPMusicPlayerController applicationMusicPlayer] setVolume:0];
[self.movieController play];
[self setupAudio];
}
- (IBAction)takeVideo:(UIButton *)sender {
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.allowsEditing = YES;
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
picker.mediaTypes = [[NSArray alloc] initWithObjects: (NSString *) kUTTypeMovie, nil];
[self presentViewController:picker animated:YES completion:NULL];
while(TRUE){
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
}
}
- (void)setupAudio {
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil];
UInt32 doSetProperty = 1;
AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryMixWithOthers, sizeof(doSetProperty), &doSetProperty);
[[AVAudioSession sharedInstance] setActive: YES error: nil];
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
self.movieURL = info[UIImagePickerControllerMediaURL];
[picker dismissViewControllerAnimated:YES completion:NULL];
}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
[picker dismissViewControllerAnimated:YES completion:NULL];
}
- (void)moviePlayBackDidFinish:(NSNotification *)notification {
[[NSNotificationCenter defaultCenter]removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:nil];
[self.movieController stop];
[self.movieController.view removeFromSuperview];
self.movieController = nil;
}
@end
Я вибрирую на этом телефоне, но он работает, вибрируя или записывая видео... если видео будет записываться без звука, то даже для меня это нормально..
while(TRUE){
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
}
Спасибо
1 ответ
Я предполагаю, что API записи могут внутренне отключить вибрацию (и другие системные звуки тоже), потому что вибрация во время записи может серьезно ухудшить качество видео и звука записи.
Конечно, я только догадываюсь. Это похоже на то, что Apple может сделать, и я думаю, что в большинстве случаев это именно то, что вам нужно (например, вы не хотите, чтобы запись была разрушена входящим текстовым сообщением или телефонным звонком). Мне любопытно, почему вы хотите вибрировать устройство во время записи - это для специального эффекта?