iPhone의 근접 센서를 사용하여 귓가에 성우의 목소리를 듣자!
8262 단어 Objective-CiOS9
아는 사람으로부터 「iPhone의 상부 스피커를 사용해 앱을 만들고 있다」라고 하는 이야기를 들었습니다.
그것을 들었을 때, 평소에 듣고 있는 성우의 라디오 프로그램에서 우연히 성우씨가 멋지게 재채기를 하고 있었다는 것을 기억했습니다.
거기서 쾅하고 섬뜩한 나는 "iPhone을 귀에 가까워지면 이 멋지게 샤미 음성을 들을 수 있는 어플을 만들 수 없을까"라고 생각했습니다.
앱의 UI와는 별도로 간단하게
Objective-C
로 기능을 구현해 보았습니다.재생하고 싶은 음성 파일(성우씨의◯◯인 음성등)은 자신이 좋아하는 것을 각자 조달해 왔다고 하는 전제로 이야기를 진행시킵니다.
근접 센서
iPhone에는 근접 센서라는 것이 있습니다. 단말 화면에 얼굴이 가까워지는 것으로 반응하는 센서로, 통화중 등 터치를 무효로 하는 것으로 오조작을 없애는 등의 용도가 있습니다.
구현 방법
먼저
viewDidLoad
에서 근접 센서를 켭니다.[UIDevice currentDevice].proximityMonitoringEnabled = YES;
그런 다음 근접 센서를 모니터링합니다.
근접 센서가 반응하면
UIDeviceProximityStateDidChangeNotification
가 날아 오므로 모니터링합니다.[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(proximitySensorStateDidChange:)
name:UIDeviceProximityStateDidChangeNotification
object:nil];
통지가 날아 왔을 때에 불리는 메소드를 정의해, 이번은 그 안에 하고 싶은 처리(재채기 음성 재생)를 씁니다.
- (void)proximitySensorStateDidChange:(NSNotification *)notification {
if ([UIDevice currentDevice].proximityState == 1) {
//近接センサーがOnになった時にやりたい処理
}
}
iPhone 상단 스피커
iPhone 상단 (그림 참조)의 스피커에서 재채기 음성을 흘립니다.
이 사이트를 참고로 상단 스피커에서 음성을 출력하는 코드를 씁니다.
추천 사이트: h tp // w w. 예. 네. jp/i phone/i phone-a p/use-aootoo lbo x. HTML
구현 방법
먼저 기존 프레임 워크에서
AudioToolbox
와 AVFoundation
를 프로젝트에 추가하고 가져옵니다.그런 다음
ViewController.h
를 다음과 같이 설명합니다.
#import <UIKit/UIKit.h>
#import <AudioToolbox/AudioToolbox.h>
#import <AVFoundation/AVFoundation.h>
@interface ViewController : UIViewController<AVAudioPlayerDelegate>{
AVAudioPlayer *Do;
}
@end
그런 다음
viewDidLoad
에서 오디오 데이터를 읽는 프로세스를 추가합니다.- (void)viewDidLoad {
[super viewDidLoad];
[UIDevice currentDevice].proximityMonitoringEnabled = YES;
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(proximitySensorStateDidChange:)
name:UIDeviceProximityStateDidChangeNotification
object:nil];
//ここから先を書き加える
NSString *path= [[NSBundle mainBundle] pathForResource:@"音声ファイル名" ofType:@"mp3"];
Do = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path ] error:nil];
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
}
그리고는 앞서 근접 센서가 반응했을 때에 불리는 메소드 안에 음성 재생의 코드를 써 주면 됩니다.
- (void)proximitySensorStateDidChange:(NSNotification *)notification {
if ([UIDevice currentDevice].proximityState == 1) {
//近接センサーがOnになった時にやりたい処理
[Do play];
}
}
덧붙여서 참고로 한 사이트에서는 확실히 iOS7 당에서 서포트외가 된 쓰는 방법이 되어 있었기 때문에 iOS7 이후의 쓰는 방법으로 고쳤습니다.
요약
iPhone을 귓가에 가까이하면 음성이 출력되는 앱이 생겼습니다.
iPhone에는 근접 센서 외에도 재미있는 센서가 있거나 하기 때문에 또 아이디어를 번쩍이면 여러가지 앱을 만들어 보고 싶습니다.
이번은 완전하게 취미로 만들었으므로 그렇습니다만, 음성 파일(성우씨의 목소리)의 취급은 주의합시다.
P.S.
성우씨의 재채기 음성에 대해 이야기하고 있었을 때의 나는 오이타 기분 나빴던 것 같습니다만, 그것은 또 다른 이야기.
Reference
이 문제에 관하여(iPhone의 근접 센서를 사용하여 귓가에 성우의 목소리를 듣자!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/golasa72/items/d264c9746c8c4872a04e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)