मैं यह पता लगाने की कोशिश कर रहा हूं कि आईफोन/आईपैड/आईपॉड पर कोई भी ऑडियो डिवाइस कनेक्ट है या नहीं। मैं ऑडियो रूट कॉल और रूट चेंज कॉलबैक के बारे में सब कुछ जानता हूं लेकिन ये मुझे जो कुछ जुड़ा हुआ है, उसके बारे में कुछ नहीं बताता है। वे केवल रिपोर्ट करते हैं कि ऑडियो वर्तमान में रूटिंग कर रहा है। उदाहरण के लिए, अगर हेडफ़ोन और/या ब्लूटूथ अभी भी जुड़े हुए हैं, तो ऑडियो को स्पीकर के माध्यम से रूट किया जाता है। या, उदाहरण के लिए, यदि कोई उपयोगकर्ता ब्लूटूथ का उपयोग करते समय हेडसेट में प्लग करता है तो ब्लूटूथ को डिस्कनेक्ट करने का निर्णय लेता है, मुझे यह जानना होगा कि ब्लूटूथ डिस्कनेक्ट हो गया है, भले ही ऑडियो हेडफ़ोन के माध्यम से चल रहा हो।संलग्न ऑडियो डिवाइस का पता लगाएं आईओएस
उत्तर
आप ऑडियोसेशन गुणों से इनपुट स्रोतों और आउटपुटडिस्टिशन की एक सूची प्राप्त कर सकते हैं। इन सत्र गुण की जाँच करें:
kAudioSessionProperty_InputSources
kAudioSessionProperty_OutputDestinations
और प्रत्येक का ब्यौरा क्वेरी करने के लिए, आप का उपयोग कर सकते हैं:
kAudioSessionProperty_InputSource
kAudioSessionProperty_OutputDestination
iOS 5 के मामले में आप का उपयोग करना चाहिए:
CFStringRef newRoute;
size = sizeof(CFStringRef);
XThrowIfError(AudioSessionGetProperty(kAudioSessionProperty_AudioRoute, &size, &newRoute), "couldn't get new audio route");
if (newRoute)
{
CFShow(newRoute);
if (CFStringCompare(newRoute, CFSTR("HeadsetInOut"), NULL) == kCFCompareEqualTo) // headset plugged in
{
colorLevels[0] = .3;
colorLevels[5] = .5;
}
else if (CFStringCompare(newRoute, CFSTR("SpeakerAndMicrophone"), NULL) == kCFCompareEqualTo)
}
दुर्भाग्य से , आईओएस 11 के रूप में, ऐसा लगता है कि वर्तमान में जुड़े आउटपुट डिवाइस की विश्वसनीयता प्राप्त करने के लिए कोई एपीआई नहीं है - जैसे ही वर्तमान मार्ग बदलता है, आप केवल AVAU के माध्यम से 1 डिवाइस (वर्तमान में रूटेड) देखते हैं dioSession का currentRoute.outputs
, भले ही कई डिवाइस अभी भी संलग्न हो जाएं।
हालांकि, निवेश के लिए, और कहा कि HFP प्रोफ़ाइल के साथ ब्लूटूथ डिवाइस, शामिल हैं अगर उचित ऑडियो सत्र मोड प्रयोग किया जाता है (AVAudioSessionModeVoiceChat
या AVAudioSessionModeVideoChat
उदाहरण के लिए), एक AVAudioSession के availableInputs
, और उन के माध्यम से उपलब्ध इनपुट की सूची प्राप्त कर सकते हैं जब इनपुट एक सक्रिय मार्ग नहीं होता है तब भी इनपुट सूचीबद्ध होते हैं - यह बहुत उपयोगी होता है जब उपयोगकर्ता ब्लूटूथ से स्पीकर तक MPVolumeView
के माध्यम से मैन्युअल ओवरराइड कर रहा है, उदाहरण के लिए, और चूंकि एचएफपी 2-तरफा आईओ है (दोनों इनपुट हैं और आउटपुट), आप यह तय कर सकते हैं कि आउटपुट एचएफपी ब्लूटूथ इनपुट को देखकर अभी भी उपलब्ध है या नहीं।
BOOL isBtInputAvailable = NO;
NSArray *inputs = [[AVAudioSession sharedInstance] availableInputs];
for (AVAudioSessionPortDescription* port in inputs) {
if ([port.portType isEqualToString:AVAudioSessionPortBluetoothHFP]) {
isBtInputAvailable = YES;
break;
}
}
- 1. मोबाइल डिवाइस का पता लगाएं - और टैबलेट डिवाइस
- 2. पता लगाएं कि आईओएस ऐप हैक
- 3. पता लगाएं कि एक यूएसबी डिवाइस सी
- 4. छवि लोड का पता लगाएं
- 5. एंड्रॉइड एक विशिष्ट ब्लूटूथ डिवाइस UUID का पता लगाएं
- 6. मेरे एंड्रॉइड डिवाइस में स्थापित प्रमाणपत्र का पता लगाएं
- 7. Django - विचारों में मोबाइल डिवाइस का पता लगाएं
- 8. कीबोर्ड के लिए घटना डिवाइस का पता लगाएं, माउस
- 9. एन्कोडिंग का पता लगाएं
- 10. टेस्टफ्लाइट का पता लगाएं?
- 11. भाषा का पता लगाएं
- 12. का पता लगाएं और
- 13. पता लगाएं कि एंड्रॉइड डिवाइस एक चलती कार में है
- 14. आईओएस डिवाइस प्लग इन होने पर कैसे पता चलेगा?
- 15. हार्डवेयर कीबोर्ड उपस्थिति का पता कैसे लगाएं?
- 16. एंड्रॉइड डिवाइस पर इयरपीस (स्पीकरफ़ोन केवल) की कमी का पता लगाएं
- 17. आईओएस वाईफ़ाई हॉटस्पॉट या ब्लूटूथ डिवाइस का पता लगाता है
- 18. पता लगाएं कि कोड
- 19. डिवाइस आईओएस डिवाइस
- 20. पता लगाएं कि घर बटन दबाए जाने पर पता लगाएं आईओएस
- 21. स्थापना पर फोन विक्रेता का पता लगाएं
- 22. अनंत रिकर्सन का पता लगाएं?
- 23. ऑनलाइन उपयोगकर्ताओं का पता लगाएं?
- 24. वेबब्रोसर नियंत्रण का पता लगाएं
- 25. का पता लगाएं और स्ट्रिंग
- 26. का पता लगाएं CAShapeLayer touch
- 27. फ़ाइल का पता लगाएं सी #
- 28. स्ट्रिंग का पता लगाएं/एल्गोरिथ्म
- 29. का पता लगाएं और vim
- 30. उल्का पर्यावरण का पता लगाएं?
मैं अपने अनुप्रयोग में एक ऐसी ही समस्या आ रही है, मेरे ऐप सही ढंग से धारा खेल रहा है लेकिन अगर मैं ऑडियो आउटपुट (अनप्लग हेड फोन्स) बदलने के लिए, यह खेलना बंद .. यू figureout किया कि जब ऑडियो आउटपुट बदल गया है पता लगाने के लिए? –
हां, एक रूट परिवर्तन का पता लगाना एक ऑडियो सत्रप्रॉपर्टी लिस्टनर कॉलबैक के माध्यम से होता है। संपत्ति श्रोता तब AudioSessionAddPropertyListener फ़ंक्शन के माध्यम से पंजीकृत होता है। हालांकि यह वही नहीं है जो मैं ऊपर करने की कोशिश कर रहा था। मेरे ऐप में मुझे यह पता लगाने की ज़रूरत है कि कौन से डिवाइस उपयोगकर्ता को उपलब्ध रूटिंग विकल्पों को सही ढंग से प्रदर्शित करने के लिए जुड़े हुए हैं। – Cliff