Sistem bir bütün olarak değil, yalnızca tek bir uygulama tarafından çıkarılan sesleri yakalamanın bir yolu var mı? WASAPI ile the entire system audio'u yakalayabilirim, fakat sadece bir uygulamadan ses yakalamak istiyorum (birçok uygulama olacak, hepsi bir kerede ses çalmaya başlayacak.)Windows 7'de tek bir uygulamanın sesini yakalama
cevap
Detours kullanılır. GetBuffer ve ReleaseBuffer da dahil olmak üzere IAudioRenderClient arabirimini kancalamak ve arabelleğindeki verileri okumak için lib'i kullanın.
Uygulama tarafından sesin çalınması için kullanılan API'lara bağlı olarak, built-in waveIn \ waveOut işlevlerini sarmak ve ses verileri boyunca geçecek bir AppInit DLL yazabilirsiniz. Bunun waveIn \ waveOut işlevleri ile çalıştığını biliyorum, ancak Windows 7'de diğer ses oynatma arabirimlerinin ne olduğundan ve AppInit hilesiyle uyumlu olup olmadıklarından emin değilim. Çekme için
AppInit'i kullanmayın, sadece askıya alınmış işlemi başlatın ve DLL'nizi enjekte edin - her iki durumda da hacky, ancak en azından makinedeki her uygulamayı etkilemezsiniz. –
Doğru, ancak bir simge tıklatıldığında başlatılan askıya/başlatmaya zor: AppInit seçeneği oldukça iyi çalışıyor. Eğer çok dikkatli olmak istiyorsanız, askıya alma/enjekte etme hilesiyle uyumlu olacak bir görüntü kaçırma işlemi yapabilirsiniz: sadece bununla ilgili herhangi bir deneyiminiz yok. – Femi
Lütfen AppInit'i hiçbir şey için kullanmayın, diğer uygulamaları çökertmek ve müşterilerinizin hayatlarını daha az müthiş hale getirmek neredeyse garantilidir. Hata ayıklayıcı API'ları kullanarak işlemleri askıya alabilir, DLL'nizi enjekte edebilir ve ardından isabet edebilirsiniz. –
- 1. Mikrofon sesini AVCaptureSession ile yakalama ve değiştirme
- 2. Windows neden tek bir uygulamanın web kamerasına erişmesine izin veriyor?
- 3. Windows Formlar: mouseWheel'i yakalama
- 4. Başka bir uygulamanın windows stilini winAPI
- 5. Windows imzalı bir uygulamanın "Bilinmeyen yayımcı" raporu
- 6. Bir Windows Forms Uygulamasında Uygulama İstisnalarını Yakalama
- 7. Windows 8'de sistem sesini nasıl tespit edebiliriz?
- 8. Windows paket yakalama yazılım geliştirme seti
- 9. javascript sesini jquery'ye taşıma
- 10. Android'de bir kişi için bir zil sesini nasıl ayarlayabilirim?
- 11. XAML'de Sistem Sesini nasıl yürütürüm?
- 12. Windows 8.1'i hedefleyen bir uygulamanın yükseklik sınırını kaldırın, ancak Windows 10'da çalışıyor mu?
- 13. Windows Phone 7 iğneyi bir uygulamanın içinden başlatmak için pim
- 14. Windows Mağazası için bir uygulamanın görünen adı nasıl yerelleştirilir?
- 15. Windows API'yi kullanarak bir uygulamanın MenuBar'ı nasıl kaldırılır?
- 16. iPhone'da HTML5 sesini döngüleme
- 17. Sürücü Sesini AyarlaLabel
- 18. Yakalama yakalama şey yapmadan bir istisna
- 19. GetUserMedia bilgisayar sesini al
- 20. Varsayılan zil sesini çalma
- 21. Mikrofon Kayıt Sesini Ayarlayın
- 22. Uygulamanın
- 23. Bir html5 video oynatıcısının sesini kapatma
- 24. Bir harf yazdığımda VIM'in daktilo sesini nasıl oynatabilirim?
- 25. Sayfanın son bölümünden önce görünümün altına tek kaydırma yakalama noktası
- 26. Başka bir uygulamanın simgesi nasıl alınır?
- 27. Resim Yakalama C#
- 28. "Sahte" DirectShow video yakalama aygıtı
- 29. Windows 10 UWP Tek oturum açma
- 30. Bir uygulamanın penceresini bulup etkinleştirin
Deudio'ları kullanarak IAudioRenderClient'i nasıl bağladınız? IMMDeviceEnumerator, IMMDevice :: Activate ve IAudioClient :: GetService ile denedim. Ama ne yazık ki IMMDevice :: Activate çağrılmıyor gibi görünüyor. – Cthutu