OS X ses seviyesi değiştiğinde bildirim almak için uygulamanıza ihtiyacım var. Bu iOS için değil, bir Masaüstü uygulaması içindir. Bu bildirim için nasıl kayıt olabilirim?Ses seviyesi değiştiğinde bildirim için nasıl kayıt olurum?
5
A
cevap
9
Bu, bazı ses aygıtlarının bir ana kanalı desteklemesi nedeniyle bu biraz zor olabilir, ancak çoğu böyle olmazsa, birim kanal başına bir özellik olacaktır. Ne yapmanız gerektiğine bağlı olarak, yalnızca bir kanalı gözlemleyebilir ve cihazın desteklediği diğer tüm kanalların aynı hacme sahip olduğunu varsayabilirsiniz. Ne olursa olsun, izlemek istediğiniz kaç kanal nedeniyle, söz konusu AudioObject için bir özellik dinleyici kaydederek hacmini gözlemlemek:
// 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
}
telsizinde proc olması gereken bir şey gibi:
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;
}
}
}
}
İlgili konular
- 1. IOS maksimum ses seviyesi?
- 2. Ses seviyesi değiştirici?
- 3. Kayıt son bildirim bildirim metnini nasıl değiştiririm?
- 4. Android'de mikrofonun ses seviyesi nasıl ayarlanır?
- 5. OpenAL'de bir sesin ses seviyesi nasıl ayarlanır?
- 6. iPhone: Yerel bildirim nasıl ses seviyesi ayarından bağımsız olarak sesli olarak oynatılır?
- 7. Kayıt bildirim 9 ben bildirim kaydetmek için bu kullanıyorum
- 8. Kayıt html5 ses
- 9. Kayıt Ses Web Sayfası
- 10. Kayıt Ses android
- 11. Ses ve titreşimle bildirim nasıl kullanılır?
- 12. INFO seviyesi kayıt iletisi, sınıf yöntemi
- 13. Performans: Bir dosyaya 'watch' koyabilir miyim, böylece dosya değiştiğinde haberdar olurum?
- 14. AVAudioRecorder kayıt akışı ses akışı
- 15. SMS Durumu 'Kuyruk' dan 'Gönderildi' olarak değiştiğinde nasıl bildirim alınır?
- 16. SO Sohbet gibi bir öğe değiştiğinde nasıl ses çıkarabilirim?
- 17. Xcopy hızına nasıl rakip olurum?
- 18. Sadece javascript ile mikrofondan gelen ses etkinliği seviyesi
- 19. Bildirim alındığında bildirim geldiğinde android
- 20. WCF Ajax Hizmetleri için nasıl bir fikir sahibi olurum?
- 21. Ionic 2 platform.pause EventEmitter'a nasıl abone olurum?
- 22. Yonga seviyesi programlamaya nasıl başlanır
- 23. Bildirim sesi olarak ayarlamak için varsayılan iOS sesine nasıl erişebilirim?
- 24. Bahar Önyükleme uygulama günlüğü seviyesi
- 25. Bildirim Sistemi için Bildirim Şeması Facebook'a Benzer
- 26. Bildirime nasıl ses eklenir?
- 27. Bildirim simgesini bildirim çekmecesinde bildirim simgesi olarak nasıl belirlenir
- 28. Kodumda neyin var - Bildirim - ses yok titreşim yok
- 29. Bildirim yöneticisi bildirim numarası sıfırlama nasıl sıfırlanır
- 30. Görünür görünüm değiştiğinde NSNotification veya Delege