Zalogowany jako: gość

Forum

Wątek: [zrealizowana] - Ogarnijmy głośność "raz na jutro"

Wróć do listy wątków

1 z 1

1 z 3: EugeniuszPompiusz

Damy i gaspada,

Wątek z pogranicza propozycji i błędów, jednakże z racji długich podejrzewam prac by to osiągnąć umieszczam w propozycjach.
Proponuję, to pewnie głównie do Ciebie Dawidzie, ażeby podjąć próbę ogarnięcia wszelakich możliwych instancji mediów, tematów dźwiękowych, etc.

Sposób, w jaki w tym momencie Elten komunikuje się z kartami dźwiękowymi wygląda na "magiczny" bez uprzedniego wglądania w kod, boję się wiedzieć, co będzie, jeśli bym w niego zajrzał.
Teraz jednak do rzeczy.:
W eltenie nie da się zmienić karty dźwiękowej.
Prawda, nie da się.
Pozwolę sobie streścić korespondencję na ten temat z Dawidem, a następnie omówić nieco problem.

"karty się nie zmieni, bo sapi się nie zmieni, a przynajmniej nie z aktualnie używaną biblioteką".
Trudno nie odmówić racji, bo faktycznie zmiana SAPI a ściślej jego karty dźwiękowej jest problemem i nawet giganci radzą sobie z tym średnio.

Po więcej szczegółów zapraszam na blog, na którym w najbliższych dniach zapewnę opublikuję obszerniejsze wyjaśnienia na temat problemu współpracy sesji audio w Windowsie z mową SAPI 5.
Dobra, rozgadałem się, a tu nie o to chyba chodzi. SAPI więc zostawiam, i pragnę skupić się na bardziej denerwujących rzeczach.:
1. Temat dźwiękowy jest najbardziej poprawnie komunikującą się z windowsem instancją audio - zawsze działa, nie wymaga praktycznie niczego, i to on raportowany jest do systemu jako jedna, jedyna sesja Windows AUdio dla aplikacji Elten.
Brzmi zawile, więc już tłumaczę, jakie są tego następstwa.
A no takie, że na ten przykład słuchając audiowpisu na blogu nie zmienimy karty dźwiękowej, na której słyszymy jego treść nawet przy użyciu narzędzi zewnętrznych.

Dźwięki tematu zaś zostaną przekierowane na żądaną kartę bez większych problemów.

Co więcej, ponowne rozpoczęcie odtwarzania w niczym nie pomoże, audio stoi, jak stało na karcie domyślnej.

Dzieje się tak, ponieważ, i tu proszę mnie poprawić jeśli zacząłbym pleść androny,
Elten tak naprawdę nie odtwarza mediów.
Odtwarza je biblioteka BASS, która, nie wiem na jakim etapie, jest wywoływana w sposób na tyle niezależny od Eltena, że "nie podczepia się" pod już utworzoną przez proces elten.exe bądź rubyw.exe instancję audio.

Wygląda to, jakby Elten zlecał bibliotece "odtwórz mi" i podawał argumenty
zachowując jedynie podstawową kontrolę stanu (odtwarza, pauza, zatrzymany). Reszta jest oddelegowana do biblioteki.
O tym, jaki to ma wpływ opiszę zapewne parę linii dalej.

Niewiadomą dla mnie pozostaje, w jaki sposób, to jest przy użyciu jakiego standardu (bezpośrenio, WASAPI), Direct sound czy może MME komunikują się poszczególne komponenty Eltena.
Należy bowiem wiedzieć, że.: 1.jeśli proces requestuje dwie sesje audio na raz, dwie odtwarzające z czego jedna nowoczesna (WASAPI), druga zaś Wave Out (starsza, emulowana a la WASapi) windows (przynajmniej 7) dostrzeże jedynie poprawnie zainicjowaną sesję WASapi lub "kto pierwszy ten lepszy".

Kolejną przeszkodą jest fakt, że sesje muszą "do kogoś należeć".
Innymi słowy, jeśli zrobię sobie program test.exe, który odtwarza systemowy ding domyślną, systemową procedurką "odtwórz", ale umie też odtwarzać nagrania przy użyciu biblioteki "pompiusz.dll" należy sprawić (nie jestem na tyle dobrym programistą, więc nie wiem jak), by obie sesje podlegały procesowi test.exe.
Biblioteka bowiem sama z siebie nie może, o ile ogarniam API windowsa, utworzyć sesji audio dla siebie, a przynajmniej nie może tego srobić w sposób widzialny dla "miksera głośności", co za tym idzie każdego programu wyciągającego info z API windowsa i zarządzającego kartami.

Drugi, głuwny problem.: Głośności są nielogiczne.
Mówiąc szczerze, kiedy f6, kiedy shift f6, kiedy strzałki robią za głośność należy domyślać się po omacku, na czuja.
a są w Eltenie takie miejsca (wiadomości głosowe w nowym interfejsie), gdzie w ogóle głośności nie zmienimy a wydaje mi się, że nie stanowi ona wcale 100 procent możliwej głośności Eltena.


Sygnaturka.: "That seems to point up a significant difference between Europeans and Americans. A European says: 'I can't understand this, what's wrong with me?' An American says: 'I can't understand this, what's wrong with him?'" TERRY PRATCHETT
25.05.2019 18:45

2 z 3: tomecki

Oo, podpinam się, bo rzeczywiście sprawa może być dość ważna, bo czasem warto coś na kartę inną przekierować, a zwłaszcza media czasem nawet bez mowy.

25.05.2019 21:17

3 z 3: pajper

Problem rozwiązany w Eltenie 2.31. :)
#StandWithUkraine Shoot for the Moon. Even if you miss, you'll land among the stars.
26.08.2019 20:50

Wróć do listy wątków

1 z 1


Nawigacja


Copyright (©) 2014-2024, Dawid Pieper