2011-02-01 39 views
23

Có cách nào để thay đổi âm lượng của thiết bị không? Tôi đã nhìn thấy một số ứng dụng làm điều đó.iOS: Thay đổi Âm lượng Thiết bị

Tôi có phiên bản dành cho máy tính để bàn của ứng dụng iOS và thiết bị sẽ có thể được kiểm soát ở một mức độ nào đó trên mạng. Một trong những điều tôi muốn cho phép người dùng thực hiện là thay đổi âm lượng thiết bị và sau đó phát âm thanh. Điều này có thể giúp nếu bạn mất iPhone của bạn trong một vết nứt trên chiếc ghế của bạn một lần nữa, nhưng không thể tìm thấy nó.

Có cách nào để bạn có thể thực hiện việc này mà không cần Apple nổi giận không?

Trả lời

32

Sử dụng iPodMusicPlayer sẽ ảnh hưởng đến các thiết lập cũng khối lượng thực tế iPod. Nếu bạn muốn tránh điều đó, sử dụng này:

#import <MediaPlayer/MediaPlayer.h> 
// ... 
MPMusicPlayerController *musicPlayer = [MPMusicPlayerController applicationMusicPlayer]; 
musicPlayer.volume = 1.0f; 

Khi người dùng holex một cách chính xác đề cập đến tài sản volume trong MPMusicPlayerControllerdeprecated in iOS 7.

+1

Giải pháp trên hoạt động tốt cho tôi. Cảm ơn. – shatthi

+5

Hãy nhớ thêm 'MediaPlayer.framework' vào giai đoạn liên kết của mục tiêu của bạn và' #import 'trong tệp nguồn của bạn. –

+0

điều này giúp tôi ra ngoài. Cảm ơn rất nhiều. – Shivaay

14

Bạn không thể thay đổi khối lượng thiết bị theo cách lập trình, tuy nhiên MPVolumeView (thanh trượt âm lượng) có để thay đổi âm lượng thiết bị nhưng chỉ thông qua tương tác của người dùng.

MPVolumeView là một điều khiển trong hộp công cụ, bạn cần thêm MediaPlayer.framework vào dự án của bạn thì MPVolumeView sẽ được hiển thị trong hộp công cụ trong trình tạo giao diện.

Chỉnh sửa 1: MPVolumeView sử dụng âm lượng thiết bị cũng được sử dụng để đổ chuông. AVAudioPlayer là có nếu bạn muốn khối lượng cấp ứng dụng. Trong trường hợp này, bạn có thể sử dụng thuộc tính khối lượng để đặt khối lượng ứng dụng của bạn (không phải khối lượng thiết bị) theo chương trình. Tuy nhiên, bạn có thể sử dụng UISlider kiểm soát để có được khối lượng đầu vào từ người sử dụng và thiết lập để AVAudioPlayer bạn

+0

Cũng lưu ý rằng nó chỉ khả dụng trong iOS 4.2, vì vậy bạn sẽ phải bao gồm kiểm tra tính khả dụng của phiên bản/lớp trước khi sử dụng. –

+0

Nopes, thuộc tính mới được thêm vào nó để hiển thị/ẩn nó, thuộc tính mới chỉ có trong iOS 4.2, tuy nhiên tôi đã sử dụng nó trong iOS3.2, ở đây tôi đã sử dụng nó (iOS 3.2 trở lên), http: // itunes.apple.com/us/app/msiradio/id399408266?mt=8 –

+0

Hmm, đó là một loại thất bại. Tôi có thể phát âm thanh ở âm lượng khác với âm lượng chuông hoặc âm lượng hệ thống không? Tôi đã nhìn thấy khá một vài ứng dụng làm điều đó rồi. –

23

Bạn có thể sử dụng một mẹo nhỏ:

MPMusicPlayerController* musicPlayer = [MPMusicPlayerController iPodMusicPlayer]; 
    musicPlayer.volume = 1; // device volume will be changed to maximum value 
+0

Wow. Điều đó thực sự hiệu quả. Mát mẻ! – JohnK

+0

Sử dụng systemMusicPlayer thay cho iPodMusicPlayer for IOS8 + – Kevin

+0

Thuộc tính 'volume' không được chấp nhận bắt đầu với iOS 7.0. Bạn có thể kiểm tra xem [tại đây] (https://developer.apple.com/library/ios/documentation/MediaPlayer/Reference/MPMusicPlayerController_ClassReference/#//apple_ref/occ/instp/MPMusicPlayerController/volume). – Alex

Các vấn đề liên quan