Mam program napisany w Delphi XE, który odtwarza plik WAV przy użyciu TMediaPlayer. Program działa w zasobniku systemowym na komputerze z systemem Windows 7. Program czeka, aż zdarzenie uruchomi odtwarzanie pliku wav. Jeśli jestem zalogowany na samym komputerze, WAV gra dobrze. Ale jeśli zablokuję terminal komputera (lub zaloguję się za pomocą Pulpitu zdalnego), plik wav nie będzie odtwarzany przez głośnik komputera. Wiem, że zdarzenie jest uruchamiane, ponieważ cały inny kod w module obsługi zdarzeń działa dobrze; po prostu nie słychać pliku WAV. Poziom woluminu został zakodowany na maksymalnym poziomie, więc wiem, że nie jest to problem z woluminem. Czy system Windows 7 ma coś, co uniemożliwia dźwięk dochodzący z głośnika, jeśli nikt nie jest aktualnie zalogowany na komputerze? Jeśli to ograniczenie istnieje, czy istnieje sposób obejścia tego?Dźwięk wyjściowy przez głośnik, gdy nie jest zalogowany
Odpowiedz
Jak sugeruje Brad, użyj PlaySound()
zamiast TMediaPlayer
. Działa dobrze, gdy urządzenie jest "zablokowane". Nie jestem pewien, czy działa on nad połączeniem z komputerem stacjonarnym.
Aby to potwierdzić, stworzyłem nową aplikację, umieścić TTimer
na formularzu, należy ustawić właściwość Interval
do 20000 i umieścić ten kod w przypadku OnTimer
:
procedure TForm13.Timer1Timer(Sender: TObject);
begin
PlaySound('c:\windows\media\tada.wav', 0, SND_ASYNC or SND_FILENAME);
end;
Potem prowadził ją, blokada konsola (z WindowsL) i odczekał 20 sekund. Dźwięk odtwarzany pomyślnie.
Po podłączeniu pulpitu zdalnego należy ustawić połączenie, aby odtwarzać dźwięk lokalnie, a nie na komputerze zdalnym. Wiem, ponieważ musiałem przypominać kolegom, żeby zmienili ścieżkę dźwiękową, gdy pracowali z domu ... –
@Marjan, +1 w komentarzu, a nie przy użyciu nożyc do drutu. Jestem pewien, że to było kuszące. –
@Chris: :-) Tak, to było ... –
- 1. Jak odtwarzać dźwięk przez głośnik, nawet gdy zestaw słuchawkowy jest podłączony?
- 2. Python odczytać dźwięk wyjściowy nie wprowadzać
- 3. Odtwarzanie dźwięku przez górny głośnik (telefon)
- 4. MPMoviePlayerController odmawia odtwarzania dźwięku przez głośnik w iOS4
- 5. Wątki są powolne, gdy dźwięk jest wyłączony
- 6. Błąd nie jest zalogowany z Application_Error
- 7. Jak odtwarzać dźwięk przez głośniki, a nie przez słabsze głośniki?
- 8. Jak uzyskać aktualnego użytkownika, który jest zalogowany przez aktywnego administratora?
- 9. ASP.NET: Użytkownik nie będzie zalogowany przez dłużej niż 30 minut.
- 10. Jak odtwarzać dźwięk, gdy aktualny czas jest równy określonemu czasowi?
- 11. IOS: Odtwarzaj dźwięk, gdy aplikacja jest w tle.
- 12. Swift - AVAudioPlayer nadal odtwarza dźwięk, gdy urządzenie jest wyłączone?
- 13. FB.ui() podając błąd w Safari z asynchronicznym żądaniem, gdy użytkownik nie jest jeszcze zalogowany
- 14. MVC - Witryna jest dostępna, jeśli nie jest zalogowany?
- 15. Jaki jest format wyjściowy SHA256
- 16. Sposób sprawdzania, czy użytkownik jest zalogowany, czy nie przez "Google Zaloguj się" (OAuth 2.0)
- 17. Przesyłanie danych przez dźwięk w Androidzie
- 18. backbone.js - obsługa, jeśli użytkownik jest zalogowany lub nie
- 19. Jak sprawdzić, czy aktualnie zalogowany użytkownik jest administratorem czy nie?
- 20. Jak sprawdzić, czy główny głośnik systemu jest wyciszony lub wyłączony?
- 21. składni, należy sprawdzić, czy użytkownik jest zalogowany
- 22. Samsung Galaxy S5 głośnik \ mikrofon wydanie
- 23. jak odtwarzać dźwięk z mikrofonu do głośnika bezpośrednio na Androidzie?
- 24. A/dev/null jest niezmienny dla WYŚWIETLACZA, gdy wyświetlany jest tylko dźwięk
- 25. SeekToTime w AVPlayer przestaje odtwarzać dźwięk przesyłany strumieniowo, gdy przesyłam dźwięk w przód
- 26. Czy w Java jest zerowy strumień wyjściowy?
- 27. xcodebuild: znajdź gdzie plik wyjściowy aplikacji jest
- 28. Wiosna społeczna: „Nie można uzyskać ConnectionRepository: nie jesteś zalogowany użytkownik”
- 29. Jaki jest wyjściowy format pliku xmllint ls?
- 30. nowy dźwięk() nie jest zaimplementowany w przeglądarce Internet Explorer
Czy masz ten sam problem, jeśli używasz standardowego interfejsu API Windows PlaySound? – Brad
Tak, ten sam problem występuje przy użyciu PlaySound. Próbowałem również używać Speech API i mam ten sam problem. To tak, jakby karta dźwiękowa nie wyprowadzała niczego, chyba że jesteś zalogowany na komputerze bezpośrednio. –
Wiem na pewno, że uruchomiony program może odtwarzać dźwięk za pomocą funkcji API PlaySound, nawet gdy konsola jest zablokowana. Nie znam Delphi, ale czy jesteś pewien, że wywołałeś bezpośrednio API Win32? Jeśli pomaga, po zablokowaniu komputera, to, co widać na ekranie, jest w rzeczywistości inną sesją. To samo z Remote Desktop ... jest to inna sesja. – Brad