ओएस एक्स ध्वनि वॉल्यूम बदल गया है जब मुझे अपने ऐप को अधिसूचित करने की आवश्यकता है। यह एक डेस्कटॉप ऐप के लिए है, आईओएस के लिए नहीं। मैं इस अधिसूचना के लिए कैसे पंजीकरण कर सकता हूं?ध्वनि वॉल्यूम परिवर्तन के लिए मैं अधिसूचना के लिए कैसे पंजीकरण करूं?
5
A
उत्तर
9
यह एक छोटा सा मुश्किल हो सकता है क्योंकि कुछ ऑडियो डिवाइस एक मास्टर चैनल का समर्थन करते हैं, लेकिन अधिकांश ऐसा नहीं है कि वॉल्यूम प्रति चैनल संपत्ति होगी। आपको जो करने की आवश्यकता है उसके आधार पर आप केवल एक चैनल देख सकते हैं और मान लें कि डिवाइस के सभी अन्य चैनलों का समान मात्रा समान है। कितने चैनलों आप देखना चाहते हैं के बावजूद, आप प्रश्न में AudioObject के लिए एक संपत्ति श्रोता पंजीकरण से मात्रा पर ध्यान दें:
// Some devices (but not many) support a master channel
AudioObjectPropertyAddress propertyAddress = {
kAudioDevicePropertyVolumeScalar,
kAudioDevicePropertyScopeOutput,
kAudioObjectPropertyElementMaster
};
if(AudioObjectHasProperty(deviceID, &propertyAddress)) {
OSStatus result = AudioObjectAddPropertyListener(deviceID, &propertyAddress, myAudioObjectPropertyListenerProc, self);
// Error handling omitted
}
else {
// Typically the L and R channels are 1 and 2 respectively, but could be different
propertyAddress.mElement = 1;
OSStatus result = AudioObjectAddPropertyListener(deviceID, &propertyAddress, myAudioObjectPropertyListenerProc, self);
// Error handling omitted
propertyAddress.mElement = 2;
result = AudioObjectAddPropertyListener(deviceID, &propertyAddress, myAudioObjectPropertyListenerProc, self);
// Error handling omitted
}
आपका श्रोता proc होना चाहिए कुछ की तरह:
static OSStatus
myAudioObjectPropertyListenerProc(AudioObjectID inObjectID,
UInt32 inNumberAddresses,
const AudioObjectPropertyAddress inAddresses[],
void *inClientData)
{
for(UInt32 addressIndex = 0; addressIndex < inNumberAddresses; ++addressIndex) {
AudioObjectPropertyAddress currentAddress = inAddresses[addressIndex];
switch(currentAddress.mSelector) {
case kAudioDevicePropertyVolumeScalar:
{
Float32 volume = 0;
UInt32 dataSize = sizeof(volume);
OSStatus result = AudioObjectGetPropertyData(inObjectID, ¤tAddress, 0, NULL, &dataSize, &volume);
if(kAudioHardwareNoError != result) {
// Handle the error
continue;
}
// Process the volume change
break;
}
}
}
}
संबंधित मुद्दे
- 1. ध्वनि सुनने के लिए एंड्रॉइड अधिसूचना केवल
- 2. दृश्य दृश्य में परिवर्तन के लिए एनएसएनोटिफिकेशन या प्रतिनिधि पंजीकरण
- 3. एप्लिकेशन म्यूजिकप्लेयर वॉल्यूम अधिसूचना
- 4. एक सिस्टम ध्वनि वॉल्यूम स्तर
- 5. अधिसूचना ध्वनि के रूप में सेट करने के लिए मैं डिफ़ॉल्ट आईओएस ध्वनि कैसे प्राप्त कर सकता हूं?
- 6. ध्वनि और कंपन के साथ अधिसूचना का उपयोग कैसे करें?
- 7. अधिसूचना में ध्वनि कैसे जोड़ें?
- 8. भौतिक ड्राइव के लिए वॉल्यूम
- 9. वॉल्यूम परिवर्तन श्रोता?
- 10. कस्टम अधिसूचना ध्वनि
- 11. अधिसूचना ध्वनि मात्रा प्रोग्रामेटिक रूप से कैसे सेट करें?
- 12. आईफोन: वॉल्यूम सेटिंग से ज़ोर से स्थानीय अधिसूचना ध्वनि कैसे खेलें?
- 13. उबंटू टर्मिनल में ध्वनि अधिसूचना
- 14. कैसे ध्वनि की मात्रा बढ़ाने के लिए AVAudioRecorder
- 15. कोको शेयरवेयर के लिए पंजीकरण
- 16. मीडिया वॉल्यूम परिवर्तन अधिसूचनाएं कैसे प्राप्त करें?
- 17. बूट पर Ubuntu ध्वनि वॉल्यूम सेट करें
- 18. वेबसाइटों पर अधिसूचना ध्वनि कैसे खेलें?
- 19. एपीएन कस्टम अधिसूचना ध्वनि समस्या
- 20. ध्वनि क्लाउड HTML5 विजेट प्लेयर वॉल्यूम
- 21. couchdb-python परिवर्तन अधिसूचना
- 22. कस्टम आईओएस पुश अधिसूचना ध्वनि
- 23. UIView फ्रेम परिवर्तन अधिसूचना
- 24. क्लिपबोर्ड सामग्री परिवर्तन के लिए श्रोता?
- 25. वॉल्यूम कुंजी के लिए एंड्रॉइड ब्रॉडकास्ट रिसीवर
- 26. स्थानीय नोटिफिकेशन के लिए कस्टम ध्वनि चुनें
- 27. संशोधन/परिवर्तन के लिए मैं "फाइल" कैसे देख सकता हूं?
- 28. कैसे SVN बनाने के लिए परिवर्तन
- 29. मैं एंड्रॉइड मीडियाप्लेयर में वर्तमान वॉल्यूम/आयाम कैसे प्राप्त करूं?
- 30. केवल सूचना अधिसूचना डिफ़ॉल्ट ध्वनि (एंड्रॉइड)