Jak wyłączyć/wyciszyć dźwięk w programie?

Jak wyłączyć/wyciszyć dźwięk w programie?
PI
  • Rejestracja:około 19 lat
  • Ostatnio:około 8 lat
0

witam!

jak zrobić aby dźwięki w moim programie były zawsze wyciszone? ..robie teraz program do otwierania stron www tylko chce żeby nie było w ogóle głosu w programie..że np jak otworze link z filmem w YouTube to żeby głosu tam nie było..czy da się dla poszczególnych aplikacji wyłączyć głos albo go wyciszyć do zera? albo jak zrobie w programie jakie koilwiek odtwarzanie dźwięków to żeby były one nie słyszalne. ma ktoś jakiś pomysł? szukam i szukam po necie i nie moge znaleźć ;/

madmike
@olesio, przywróciłem, bo już wcześniej inne duplikaty posłałem do kosza ;)
olesio
@madmike: ale i tak całośc była w sumie do wywalenia, bo nie dość że pytający na...ał tego cztery razy nie wiadomo w jakim celu. To jeszcze później coś marudził, że chce kod, ale w C++. Także dziwi mnie i tak umieszczenie tego tutaj.
madmike
@olesio, bez nerwów - sam wiesz, że czasem coyote głupieje i pozwala na dodanie kilku tematów - nic się z tego powodu nie stało, nie chciał kodu w c++ - czytaj, to dragon dał mu bodajże link do czegoś z c++...
PI
Madmike.... jak by się ten serwis tak nie zwieszał to by nie było tyle duplikatów... moja wina, ze za każdym razem jak dodałem ten temat to mi wyskakiwał bład że temat nie może być dodany bo był za długi czas oczekiwania(czy jakoś tak) a potem się okazuje że na liście tematów było kilka tych samych...moja wina? ..w ogóel wszystko się tu zacina..cały serwis chodzi wolno jak flaki z olejem
madmike
Oj tam, nie jest tak źle... Czasem coś nie do końca działa tak jak powinno, ale są ludzie, którzy cały czas czuwają, żeby to co zbędne lądowało w koszu... Nic się przecież nie stało, wesołych świąt ;)
PI
ok, spoko i na wzajem ;) tylko ze już któryś dzień tego szukam po necie i pomalutku mi nerwy puszczają, a nie wydaje mi się żeby to było aż tak bardzo skomplikowane, a i tak nigdzie nie moge tego znależć..a zależy mi na czasie, bo tworze aplikacje na zamówienie..wszystko zrobiłem tylko brakuje mi zrobić to jak dźwięk wyłączyć w programie i program będzie gotowy i temu mnie już to zaczyna denerwować i nie mam pojęcia jak to zrobić
Opi
  • Rejestracja:ponad 20 lat
  • Ostatnio:dzień
  • Postów:1029
PI
  • Rejestracja:około 19 lat
  • Ostatnio:około 8 lat
0

jak znajdziesz odp na moje pytanie w tym linku co mi sam podałeś to będziesz geniuszem... ;/

olesio
  • Rejestracja:około 17 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Szczecin
  • Postów:4191
0

W pierwszym wyniku w wątku na Stack Overflow, w zatwierdzonej odpowiedzi jest wyjaśnione wszystko co potrzeba. Potrzebny moduł z interface'ami pod Delphi również da się znaleźć i to na MSDnie. Jest tam funkcja GetSimpleAudioVolumeFromPid to z nią musisz pokombinować. Ewentualnie sobie tak przerobić aby podawać od razu PID, a nie wyszukiwać po nazwie exeka.

Ponieważ wiadomo, że aplikacja o podobnej nazwie może się powtarzać. I wtedy zostanie wyszukana pierwsza z nich. chyba, że sobie podasz własny PId aktualnego procesu. Jest też funkcja wyszukująca po HWND okien. Jednak najważniejsze, to zdecyduj się w końcu, w jakim języku potrzebujesz tego, bo jeśli jak wspomniałeś w C++ to powinieneś pisać w odpowiednim dziale, a nie tutaj.

Ewentulnie na bazie kodu z Delphi przetłumacz to sobie do C++ czy czego tam wolisz.


Pozdrawiam.
edytowany 3x, ostatnio: olesio
PI
  • Rejestracja:około 19 lat
  • Ostatnio:około 8 lat
0

dzięki za jaką kolwiek odp. moze coś wykombinuje z tego... ja to chce w delphi zrobić..nie rozumiem o co biega wam z tym c++ ..chyba ze przez przypadek zamiast w dziale z delphi to założyłem temat w dziale z c++ i nie zauważyłem..sam nie wiem

_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:3 miesiące
0

Wszystkie funkcje WinAPI są dostępne w delphi.
Na stronie msdn niestety opisane tylko dla C++, C#, VBA.
Po tym jak znajdziesz odpowiednią funkcje to wpisujesz ją w delphi zaś delphi podpowie typy parametrów.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
olesio
  • Rejestracja:około 17 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Szczecin
  • Postów:4191
1

Przyznam się, że to ja tak odczytałem komentarz pytającego. Nie widząć kodu Dragona czy tam odnośnika, bo panował taki bajzel przez wielokrotne wysyłanie. Toteż zrozumiałem, że chcesz w C++. Nieważne, trochę kombinowałem sam. I wyciszenie całkowite to pestka. Jednak skorzystanie z gotowego kodu i próba użycia funkcji GetSimpleAudioVolumeFromPid dla Pid'u pobranego przez GetCurrentProcessId nie przechodzi linijki:

Kopiuj
    hr := SessionManager.QueryInterface(IID_IAudioSessionQuery, SessionQuery);

Jeśli komuś udało by się faktycznie ogarnąć dlaczego i jak to zrobić. Bo z pobieraniem Device kombinowałem na różne sposoby, również tak jak w przykładach dostępnych na sieci. To mógłby się podzielić. Celowo pobrałem SDK microsoftu z przykładami w C++, ale tam widzę też tylko przykłady operowania globalnego. Oczywiście testowa aplikacja w Delphi odgrywa mi cały czas w pętli dźwięk z użyciem bass.dll. Bo tylko odgrywające aktualnie dźwięk pokażą się z możliwością regulacji głośności w mikserze pod Windows 7 z ikoną danej aplikacji.

Dołączam odpowiednie moduły.


Pozdrawiam.
edytowany 1x, ostatnio: olesio
olesio
@Azarien i @kAzek: możecie tutaj zajrzeć i spróbować ogarnąć temat?
KA
  • Rejestracja:prawie 20 lat
  • Ostatnio:2 minuty
  • Lokalizacja:Gorlice
2
olesio napisał(a):

Bo tylko odgrywające aktualnie dźwięk pokażą się z możliwością regulacji głośności w mikserze pod Windows 7 z ikoną danej aplikacji.

Nie wiem dlaczego tamto nie działa ale nieprawda że aplikacja tylko podczas odtwarzania dźwięku znajduje się w mikserze bo można ją samemu dodać w dowolnym momencie:

Kopiuj
var
  DefaultDevice: IMMDevice;
  DeviceEnumerator: IMMDeviceEnumerator;
  SessionManager : IAudioSessionManager;
  SessionControl : IAudioSessionControl;
  SimpleAudio: ISimpleAudioVolume;
  hr: Integer;
  VolumeLevel: Single;
begin
  VolumeLevel:= 0.5; //moze być od 0.0 do 1.0
  hr:= CoCreateInstance(CLASS_IMMDeviceEnumerator, nil, CLSCTX_INPROC_SERVER, IID_IMMDeviceEnumerator, deviceEnumerator);
  if Succeeded(hr) then
  begin
    hr:=  DeviceEnumerator.GetDefaultAudioEndpoint(eRender, eConsole, DefaultDevice);
    if Succeeded(hr) then
    begin
      hr:= DefaultDevice.Activate(IID_IAudioSessionManager, CLSCTX_ALL, nil, IUnknown(SessionManager));
      if Succeeded(hr) then
      begin
        hr:= SessionManager.GetAudioSessionControl(@GUID_NULL, 0, SessionControl);
        if Succeeded(hr) then
        begin
          hr:= SessionControl.SetDisplayName('Test :)', nil);
          if Succeeded(hr) then
          begin
            hr:= SessionControl.QueryInterface(IID_ISimpleAudioVolume, SimpleAudio);
            if Succeeded(hr) then
            begin
              SimpleAudio.SetMasterVolume(VolumeLevel, nil);
              SimpleAudio.GetMasterVolume(VolumeLevel);
              Caption:= FloatToStr(VolumeLevel);
              //SimpleAudio.SetMute(True, nil);
            end;
          end;
        end;
      end;
    end;
  end;
end;

Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.
olesio
  • Rejestracja:około 17 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Szczecin
  • Postów:4191
0

Fajnie, przetestuje to później, kiedy będę w domu. A umiałbyś to ewentualnie dodatkowo przerobić pod kątem ustawiania dla konkretnego PId'u? Przyszłościowo by się przydało za pewne. A nie wiem czy zapożyczenia z kodu tamtej funkcji się powiodą.

Poza tym jestem ciekaw jak będzie pod Windowsem XP. Bo mam kod pod niego na globalne regulowanie dźwięku, jednak googlując sporo za przykładami kodów, widziałem jakiś moduł z dwoma klasami podczepioną pod dziediczącą z nich i sprawdzającą czy użyć kodu dla XP czy nowszych systemów.


Pozdrawiam.
PI
  • Rejestracja:około 19 lat
  • Ostatnio:około 8 lat
0

kAzek to wiesz mozę jak wyciszyć dźwięk w "mojej" aplikacji?..bo już sił do tego nie mam.. zaznaczam że mam WindowsaXP..

KA
  • Rejestracja:prawie 20 lat
  • Ostatnio:2 minuty
  • Lokalizacja:Gorlice
1

@olesio z tego co wiem pod XP chyba nie da się zrobić osobnej regulacji dla danej aplikacji a co do konkretnego PID nie jestem pewien ale chyba trzeba by się dobrać do IAudioSessionControl2 (jak będę miał wolną chwilę to się pobawię ale nie gwarantuję że się uda).
@Piga na Vista+ to mój przykład jest praktycznie gotowcem tylko trzeba SetMute a na XP to jak napisałem wyżej chyba nie można dla aplikacji.


Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.
olesio
  • Rejestracja:około 17 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Szczecin
  • Postów:4191
0

@kAzek: ok, dzięki. Jak coś jeszcze wykombinujesz to daj znać. Póki co zatwierdzam Twoją odpowiedź, ponieważ robi to co chciał pytający. A da się to zrobić jak oboje podejrzewamy tylko pod nowsze OS'y.

@Piga: może czegoś nie doczytałem, ale nie wiedziałem, że cały czas chodzi o XP. Według mnie też się nie da. Bo wystarczy porównać jak wyglądają standardowe ustawienia głośności pod oboma systemami. Pod XP regulujesz globalnie. Według mnie też się nie da nic zrobić dla konkretnej aplikacji.


Pozdrawiam.
edytowany 1x, ostatnio: olesio
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)