ios - सिस्टम वॉल्यूम आईओएस प्राप्त करें




objective-c swift (6)

आईओएस उपकरणों की मात्रा से निपटने के लिए मैंने स्थिर विधियों के साथ एक कक्षा तैयार की है। मुझे आपके साथ साझा करने दो :)

import AVFoundation
class HeadPhoneDetectHelper {
class func isHeadPhoneConnected() -> Bool
{
    do{
        let audioSession = AVAudioSession.sharedInstance()
        try audioSession.setActive(true)
        let currentRoute = audioSession.currentRoute
        let headPhonePortDescriptionArray = currentRoute.outputs.filter{$0.portType == AVAudioSessionPortHeadphones}
        let isHeadPhoneConnected = headPhonePortDescriptionArray.count != 0
        return isHeadPhoneConnected
    }catch{
        print("Error while checking head phone connection : \(error)")
    }
    return false
}

class func isVolumeLevelAppropriate() -> Bool
{
    let minimumVolumeLevelToAccept = 100
    let currentVolumeLevel = HeadPhoneDetectHelper.getVolumeLevelAsPercentage()
    let isVolumeLevelAppropriate = currentVolumeLevel >= minimumVolumeLevelToAccept
    return isVolumeLevelAppropriate
}

class func getVolumeLevelAsPercentage() -> Int
{
    do{
        let audioSession = AVAudioSession.sharedInstance()
        try audioSession.setActive(true)
        let audioVolume =  audioSession.outputVolume
        let audioVolumePercentage = audioVolume * 100
        return Int(audioVolumePercentage)
    }catch{
        print("Error while getting volume level \(error)")
    }
    return 0
}
}

मेरा मामला सरल है: मुझे एक चेतावनी संकेत चलाने की ज़रूरत है और यह सुनिश्चित करना है कि उपयोगकर्ता इसे सुन सके, इसलिए मैं सिस्टम वॉल्यूम की जांच करना चाहता हूं।

मैं कैसे पता लगा सकता हूं कि वर्तमान सिस्टम वॉल्यूम क्या है?


आप डिफ़ॉल्ट सिस्टम की वॉल्यूम का उपयोग कर सकते हैं और जहां चाहें वहां जोड़ें। मेरे मामले में मुझे इसे अपने संगीत प्लेयर में जरूरी था। यह आसान और परेशानी मुक्त है। बस दृश्य जोड़ें, और सबकुछ किया जाता है। यह ऐप्पल के एमपीवॉल्यूम क्लास संदर्भ में समझाया गया है।

mpVolumeViewParentView.backgroundColor = [UIColor clearColor];
MPVolumeView *myVolumeView =
[[MPVolumeView alloc] initWithFrame: mpVolumeViewParentView.bounds];
[mpVolumeViewParentView addSubview: myVolumeView];
[myVolumeView release];

ऑडियो सत्र आउटपुट वॉल्यूम (आईओएस> = 6.0) प्रदान कर सकता है।

float vol = [[AVAudioSession sharedInstance] outputVolume];
NSLog(@"output volume: %1.2f dB", 20.f*log10f(vol+FLT_MIN));

यह ठीक काम करता है:

Float32 volume;
UInt32 dataSize = sizeof(Float32);

AudioSessionGetProperty (
                     kAudioSessionProperty_CurrentHardwareOutputVolume,
                     &dataSize,
                     &volume
                     );

स्विफ्ट 2 के लिए :

let volume = AVAudioSession.sharedInstance().outputVolume   
print("Output volume: \(volume)")

स्विफ्ट 3.1

let audioSession = AVAudioSession.sharedInstance()
var volume: Float?
do {
    try audioSession.setActive(true)
    volume = audioSession.outputVolume
} catch {
    print("Error Setting Up Audio Session")
}

audioSession.setActive(true) - महत्वपूर्ण







volume