1 / 8

iPhone 勉強会 ~ Audio ~

iPhone 勉強会 ~ Audio ~. 縣 禎輝. iPhone で音を鳴らす. iPhone でサウンドを再生する 方法 1) System Sound Service 30 秒以下でファイル容量の小さなサウンド CAF,MP3,WAV,AIFF  など 2 ) AVAudioPlayer フレームワーク , 最も簡単な演奏方法 3) AudioQueue 大半 のフォーマットに 対応 , 扱い が難しい 4 ) AudioUnit     シンセサイズなどには必須のサウンド演奏 方法 ある 程度はフレームワーク化されて いる

marsha
Download Presentation

iPhone 勉強会 ~ Audio ~

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. iPhone勉強会~Audio~ 縣 禎輝

  2. iPhoneで音を鳴らす • iPhoneでサウンドを再生する方法 1)SystemSound Service 30秒以下でファイル容量の小さなサウンド CAF,MP3,WAV,AIFF など 2)AVAudioPlayer フレームワーク,最も簡単な演奏方法 3)AudioQueue 大半のフォーマットに対応, 扱いが難しい 4)AudioUnit     シンセサイズなどには必須のサウンド演奏方法 ある程度はフレームワーク化されている 5)OpenGL もともとゲームのために用意されたAPIなので、自由度の高い再生ができる

  3. iPhoneのサウンドフォーマット • iPhoneは、MIDI以外のほとんどのフォーマットに対応している。 • 標準で要求するフォーマットは、caf形式のファイルである。 • 他の形式は、QuickTimeプレイヤーが対応している。 • Mac上のシミュレーターで動作しても、実機では動作しないことがこれ以外にも多々あること留意しなくてはならない。

  4. サウンド再生の準備 • CAFのリニアPCMへの変換の例 /usr/bin/afconvert –f caff –d LEI16 INPUT_FILE OUTPUT_FILE.caf • CAFのIMA4への変換の例 /usr/bin/afconvert –f caff –d ima4 INPUT_FILE OUTPUT_FILE.caf • CAFのAACへの変換の例 /usr/bin/afconvert –f caff –d ima4 INPUT_FILE OUTPUT_FILE.caf

  5. System Sound Serviceの使い方 // オーディオファイルのパスを取得する NSURL* url; url = [NSURL fileURLWithPath: [[NSBundlemainBundle] pathForResource:@"C4" ofType:@"aif"]]; // システムサウンドを作成する AudioServicesCreateSystemSoundID((CFURLRef)url, &_soundC4); // サウンドを鳴らす AudioServicesPlayAlertSound(sound);

  6. System Sound Serviceで楽器アプリ • 必要な13音のサウンドを読み込む - (void)viewDidLoad { // サウンドを読み込む NSURL* url; url = [NSURL fileURLWithPath:[[NSBundlemainBundle] pathForResource:@"C4" ofType:@"aif"]]; AudioServicesCreateSystemSoundID((CFURLRef)url, &_soundC4); url = [NSURL fileURLWithPath:[[NSBundlemainBundle] pathForResource:@"C#" ofType:@"aif"]]; AudioServicesCreateSystemSoundID((CFURLRef)url, &_soundCS); ……

  7. playSound:アクションメソッドで再生 - (IBAction)playSound:(id)sender { // タグを取得して、サウンドを決定する SystemSoundID sound = (SystemSoundID)NULL; switch ([sender tag]) { case 100: sound = _soundC4; break; case 101: sound = _soundCS; break; case 102: sound = _soundD; break; case 103: sound = _soundDS; break; …… } // サウンドを鳴らす if (sound) { AudioServicesPlayAlertSound(sound); } }

  8. System Sound Serviceの欠点 • 提供していない機能 • 音量の調整ができない • 鳴らした音を途中で止める事ができない

More Related