作者j5307 (JJ)
看板MacDev
標題[問題] 錄影時加入播放聲音
時間Fri Oct 26 02:17:49 2012
在進入錄影畫面時(未進行記錄動作)
先加入 [captureSession startRunning];
此時加入語音提示功能按鈕
所以就在
-(void)viewDidLoad{
.....
[tipButton addTarget:self action:@selector(tipAudio:)
forControlEvents:UIControlEventTouchUpInside];
}
-(void)tipAudio{
if(tip==0){
videoTip = [[NSBundle mainBundle] pathForResource:@"a1" ofType:@"mp3"];
playTip= [[AVAudioPlayer alloc]
initWithContentsOfURL:[[NSURL alloc]
initFileURLWithPath:videoTip]error:nil];
[playTip play];
[self performSelector:@selector(tipAudio:)
withObject:nil afterDelay:4];
tip=1;
}
else if(tip==1){
videoTip = [[NSBundle mainBundle] pathForResource:@"a2" ofType:@"mp3"];
playTip= [[AVAudioPlayer alloc]
initWithContentsOfURL:[[NSURL alloc]
initFileURLWithPath:videoTip]error:nil];
[playTip play];
[self performSelector:@selector(tipAudio:)
withObject:nil afterDelay:4];
tip=2;
}
else if(tip==3){...}
else ...
}
當我做完動作後 錄影畫面卻會定格
所以需要改成
[captureSession stopRunning];
[playTip play];
[captureSession startRunning];
而在需要做好幾次的情況下 那這樣畫面會一直 停頓
是否有什麼方法 可以在我播放聲音同時 錄像也不會停止呢
不知道板上各位高手是否也曾經碰到過類似問題
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.254.232.158
1F:推 johnlinvc:audiosession 有調成playandrecord嗎? 10/26 08:51
沒有誒 請問這個的用法是? 我查了相關資料還是不太明白
※ 編輯: j5307 來自: 114.40.179.221 (10/26 11:32)
我播放聲音檔的方式 是直接使用if裡面的前三行
其它就沒有再加了
※ 編輯: j5307 來自: 114.40.179.221 (10/26 11:34)
這個我有看過 但是好像在加入這一行
propertySetError = AudioSessionSetProperty
( kAudioSessionProperty_OverrideCategoryMixWithOthers,
sizeof (allowMixing), &allowMixing);
會失敗的樣子?
※ 編輯: j5307 來自: 114.40.181.155 (10/26 17:17)
我把我要播放的影片先放在 viewDidLoad所以就變成
NSError *setCategoryError = nil; [[AVAudioSession sharedInstance]
setCategory: AVAudioSessionCategoryPlayAndRecord error:
&setCategoryError];
if (setCategoryError) { NSLog(@"%@",[setCategoryError description]); }
OSStatus propertySetError = 0;
UInt32 allowMixing = true;
propertySetError = AudioSessionSetProperty
( kAudioSessionProperty_OverrideCategoryMixWithOthers,
sizeof (allowMixing), &allowMixing);
videoTip = [[NSBundle mainBundle] pathForResource:@"a1" ofType:@"mp3"];
playTip= [[AVAudioPlayer alloc]initWithContentsOfURL:
[[NSURL alloc]initFileURLWithPath:videoTip]error:nil];
[playTip play];
錯誤的那行原因是說未宣告kAudioSessionProperty_OverrideCategoryMixWithOthers
※ 編輯: j5307 來自: 114.40.181.155 (10/26 17:28)
瞭解了 是我忘記加入 AudioToolbox.framework 成功了 謝謝你囉
※ 編輯: j5307 來自: 114.40.181.155 (10/26 17:35)