Tôi đã tạo các điều khiển tùy chỉnh của riêng mình để sử dụng với MPMoviePlayerController
. Cho đến nay mọi thứ hoạt động ngoại trừ điều khiển nút tắt tiếng.Làm thế nào để tắt/bật âm thanh khi phát video bằng MPMoviePlayerController?
Tôi đã định cấu hình AVAudioSession
bằng cách sử dụng mã sau đây trước khi tôi tạo bản sao của mình là MPMoviePlayerController
.
NSError *modeError = nil;
[self.audioSession setMode:AVAudioSessionModeMoviePlayback error:&modeError];
if (modeError != nil) {
NSLog(@"Error setting mode for AVAudioSession: %@", modeError);
}
NSError *categoryError = nil;
[self.audioSession setCategory:AVAudioSessionCategoryPlayback error:&categoryError];
if (categoryError != nil) {
NSLog(@"Error setting category for AVAudioSession: %@", categoryError);
}
Sau đó, trong phương pháp nút gọi lại câm của tôi, tôi có đoạn mã sau:
NSError *activeError = nil;
[self.audioSession setActive:NO error:&activeError];
if (activeError != nil) {
NSLog(@"Error setting inactive state for AVAudioSession: %@", activeError);
}
Khi nhấp vào nút Mute tôi nhận được lỗi unuseful sau:
Error Domain=NSOSStatusErrorDomain Code=560030580 "The operation couldn’t be completed. (OSStatus error 560030580.)"
tôi đang liên kết để khung AVFoundation
.
Điều này thực sự bắt đầu gây lỗi cho tôi vì tôi không thể cho cuộc sống của tôi làm việc ra một cách để giảm hoặc tắt âm thanh phát lại của ứng dụng của tôi.
Tôi không muốn thay đổi âm lượng toàn cục của hệ thống chỉ là mức âm lượng ứng dụng như được xác định theo loại AVAudioSession
AVAudioSessionCategoryPlayback
.
Dường như bạn có thể đặt âm lượng của AVAudioPlayer
nhưng không phải là MPMoviePlayerController
. Tôi đã nhìn thấy các bài viết khác ở đây trên SO nói rằng chỉ cần tạo một thể hiện của AVAudioPlayer
và đặt âm lượng nhưng điều này chỉ khiến ứng dụng của tôi gặp sự cố và tôi hy vọng nó có liên quan đến thực tế tôi không sử dụng initWithContentsOfURL:error:
hoặc initWithData:error:
và thay vì sử dụng `init '.
Mọi trợ giúp sẽ được đánh giá cao.
Muốn xem lớp học đó, bạn đã bao giờ đặt nó trên GH chưa? –
Sợ không, tôi không chắc chắn 100% mức độ triển khai của tôi ổn định như thế nào nên tôi không bao giờ có xung quanh để đưa nó lên. Có lẽ tôi sẽ đưa nó lên như một tài liệu tham khảo. Một lỗ hổng lớn mà tôi cũng phát hiện với kỹ thuật này là nếu bạn sử dụng điều này để kiểm soát mức giá trị (thay vì chỉ tắt tiếng) nó sẽ chỉ cho phép bạn điều khiển 0-100% mức âm lượng thiết bị đã đặt. Ví dụ: khối lượng thiết bị được đặt thành 50% và sau đó bạn sử dụng phương pháp này để giảm khối lượng ứng dụng xuống 50% những gì bạn thực sự nghe là khối lượng 25%. – Camsoft
ok, thú vị. Cảm ơn vi đa trả lơi. có lẽ tôi sẽ chuyển sang AVPlayer để nhận được .mute –