Thực ra, bạn có thể thực hiện việc này. Nó được điều khiển qua Phiên âm thanh và không có gì để làm với chính bản thân số AVAudioPlayer
. Tại sao bạn không muốn sử dụng AudioSession? Họ chơi đẹp với nhau ...
Trong ứng dụng của bạn, bạn nên khởi tạo Phiên âm thanh, và sau đó bạn cũng có thể cho biết chỉ định loại âm thanh bạn dự định phát. Nếu bạn là một trình phát nhạc, thì có nghĩa là người dùng sẽ muốn nghe âm thanh ngay cả khi nút chuyển chuông/im lặng được bật.
AudioSessionInitialize (NULL, NULL, NULL, NULL);
AudioSessionSetActive(true);
// Allow playback even if Ring/Silent switch is on mute
UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty (kAudioSessionProperty_AudioCategory,
sizeof(sessionCategory),&sessionCategory);
Tôi có một ứng dụng mà tôi thực hiện việc này và sử dụng AVAudioPlayer để phát âm thanh và bật khóa chuông/im lặng, tôi có thể nghe thấy âm thanh.
CẬP NHẬT (11/6/2013)
Trong ứng dụng tôi đã đề cập ở trên, nơi tôi đã sử dụng mã trên thành công, tôi có (đối với một số thời gian) được sử dụng đoạn mã sau thay vì để đạt được cùng kết quả:
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
NSError *error = nil;
BOOL result = NO;
if ([audioSession respondsToSelector:@selector(setActive:withOptions:error:)]) {
result = [audioSession setActive:YES withOptions:0 error:&error]; // iOS6+
} else {
[audioSession setActive:YES withFlags:0 error:&error]; // iOS5 and below
}
if (!result && error) {
// deal with the error
}
error = nil;
result = [audioSession setCategory:AVAudioSessionCategoryPlayback error:&error];
if (!result && error) {
// deal with the error
}
Tôi nghĩ tôi sẽ đăng bài này thay thế, theo lời nhận xét gần đây nhất cho câu trả lời này. :-)
Nguồn
2012-04-25 19:44:34
Nếu thiết bị đang ở chế độ im lặng, không chơi âm thanh. Người dùng đã yêu cầu rõ ràng sự im lặng! –
Tại sao không có AVAudioSession? –
@JonathanGrynspan - điều đó có ý nghĩa khi người dùng _xác nhận rằng họ yêu cầu sự im lặng, nhưng nếu bạn tạo các ứng dụng có tính chất AV, bạn sẽ bị ngập với loại đánh giá này: "AUDIO KHÔNG LÀM VIỆC ★ ☆☆☆☆" –