我知道這是一個問題已經被詢問了很多次,並且我已經檢查了與SO有關的大多數答案,但是我沒有運氣找到我的問題的正確答案。聲音不在iPad揚聲器上播放,但在耳機和iPod Touch/iPhone揚聲器上正常工作
這裏的問題是:
我嘗試在觸發一些事件在比賽中發揮一個MP3文件(僅2秒,最多),我用的是AudioPlayer這樣做,下面是代碼塊:
NSError *error;
AVAudioPlayer *audioPlayer = [[[AVAudioPlayer alloc] initWithContentsOfURL:[[NSBundle mainBundle] URLForResource: @"ding" withExtension: @"mp3"] error:&error] autorelease];
if (error) {
NSLog(@"Error creating audio player: %@", [error userInfo]);
}
else {
BOOL success = [audioPlayer play];
// This always is "Play sound succeeded"
NSLog(@"Play sound %@", success ? @"succeeded" : @"failed");
}
當我運行在iPhone 4S,iTouch的3/4這段代碼時,聲音總是發揮出色,清晰,但在iPad上1或iPad2的,沒有來自揚聲器的聲音出來。但是,當我插入耳機時,發生了耳機發出聲音的奇怪現象! iPad不處於靜音模式,URL正確。
我很困惑,爲什麼會發生這種情況。
PS:我嘗試下面的代碼(從HERE GOT)輸出音頻輸出端口類型:
CFDictionaryRef asCFType = nil;
UInt32 dataSize = sizeof(asCFType);
AudioSessionGetProperty(kAudioSessionProperty_AudioRouteDescription, &dataSize, &asCFType);
NSDictionary *easyPeasy = (NSDictionary *)asCFType;
NSDictionary *firstOutput = (NSDictionary *)[[easyPeasy valueForKey:@"RouteDetailedDescription_Outputs"] objectAtIndex:0];
NSString *portType = (NSString *)[firstOutput valueForKey:@"RouteDetailedDescription_PortType"];
NSLog(@"first output port type is: %@!", portType);
當我在我的耳機插好,產量爲「第一輸出端口類型爲耳機! 「當我拔掉它,輸出原來是「第一個輸出端口類型是揚聲器!」
如果有人能提供一些幫助或建議,那將會很棒。
酷。現在你應該將你的答案標記爲正確:) –
OriginalWood,你有沒有發現更多的東西?我有一個類似的問題,通過播客應用程序以及Dropbox應用程序在iPhone上播放的MP3文件。使用耳機它播放良好,但沒有耳機(通過揚聲器)它是失真的。我在其他一些手機上嘗試了這一點,這是同樣的問題。在我看來,這是我如何導出MP3或其他東西。可能是你要看的東西是音頻文件本身,因爲這似乎是我的問題。你有沒有試過通過其中一個標準iOS應用播放特定的mp3文件? – 2012-12-11 16:32:19