Обновился и планшетный режим пропал. Есть у кого обновленная версия плеера в планшетном режиме....поделитесь...заранее спасибо.
Репутация: 3491 Обновился и планшетный режим пропал. Есть у кого обновленная версия плеера в планшетном режиме....поделитесь...заранее спасибо.
Репутация: 66830 Пусть немного оффтоп, но вопрос потерь качества при цифровой регулировке громкости косвенно касается данной темы.
Всем известно, что при цифровой регулировке громкости теряется глубина - каждые минус 6 децибел отбирают по одному разряду глубины звука. Таким образом, апсэмплинг исходного звука с 16 бит до 24 бит даст нам дополнительную фору в (24-16)*6=48 децибел. То есть тогда можно убавлять громкость изначально 16-битного источника на -48дб от 0 без потерь, что уже немало. Заставить Андроид изначально выводить на цап, поддерживающий глубину 24 бит, только эти самые апсемпленные 24 бит - не проблема. Но вот главный вопрос: В случае регулировки громкости штатными средствами Андроид будет ли он происходить уже в 24 битах, или все-таки до ресэмплинга - в 16-битном представлении? И какова реальная качественная характеристика апсемплинга средствами андроида? (Читал где-то, что только в лоллипопе начали уделять внимание алгоритмам ресемплирования с целью исключения ошибок, а в прежних версиях громкость лучше держать на максимуме).
Репутация: 66830 Отвечаю сам себе. Громкость регулируется после микшера. Подружил SGS3 и Sabre U2 DAC на лоллипоп 5.1 (CM12.1) именно на максимальных значениях разрядности и частоты - 24/96. Все просто - необходимо только в /etc/audio_policy.conf отредактировать разрядность и частоту на значение dynamic:
На рокчипе 3066 с этим пока засада. Может кому удалось? Откликнитесь!
Возьмем некий исходный материал годного качества, и перенесем его на виртуальную Linux-машину:
161 Мегабайт аудиоданных для одной композиции!hosstia@WerkStatt:~$ file "05 Halo Effect.wav"
05 Halo Effect.wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 24 bit, stereo 96000 Hz
hosstia@WerkStatt:~$ ls -sh "05 Halo Effect.wav"
161M 05 Halo Effect.wav
Запрашиваем перечень доступных ALSA устройств воспроизведения:
В наличии имеются: вирутальная звуковая карта VmWare, старенькая 24-битовая Creative SB Audigy 2 NX и китайский 16-битовый "свисток"!hosstia@WerkStatt:~$ aplay -l
**** Список PLAYBACK устройств ****
карта 0: AudioPCI [Ensoniq AudioPCI], устройство 0: ES1371/1 [ES1371 DAC2/ADC]
Подустройства: 1/1
Подустройство №0: subdevice #0
карта 0: AudioPCI [Ensoniq AudioPCI], устройство 1: ES1371/2 [ES1371 DAC1]
Подустройства: 1/1
Подустройство №0: subdevice #0
карта 1: NX [SB Audigy 2 NX], устройство 0: USB Audio [USB Audio]
Подустройства: 1/1
Подустройство №0: subdevice #0
карта 2: Device [USB PnP Sound Device], устройство 0: USB Audio [USB Audio]
Подустройства: 1/1
Подустройство №0: subdevice #0
Вторая и третья сидят на USB:
Бегло сравниваем дескрипторы USB-карт:hosstia@WerkStatt:~$ lsusb
Bus 001 Device 002: ID 041e:3020 Creative Technology, Ltd SoundBlaster Audigy 2 NX
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 005: ID 0d8c:013c C-Media Electronics, Inc. CM108 Audio Controller
Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Причем сразу понимаем, что Creativ - "отстой", потому что в нем нет даже HID'а, а у китайца есть(!):Код:2005 lsusb -v -d 041e:3020 > /tmp/NX2.txt 2006 sudo lsusb -v -d 041e:3020 > /tmp/NX2.txt 2008 sudo lsusb -v -d 0d8c:013c > /tmp/C-Media.txt 2010 meld /tmp/C-Media.txt /tmp/NX2.txt
Вложение 831444Вложение 831446Вложение 831448
Но при более скурпулёзном рассомотрении все-таки можно заменить, что Audigy потенциально дано воспроизводить 8ch x 24bit x 96000 Hz:
Вложение 831450
Теперь посмотрим, что могут наши карты, если бы для ALSA не были бы заданы никакие параметры в пользовательской конфигурации, т.е. отправим исходный файл этим железкам напрямую:
Встроенная карта сразу говорит "нет", и скатывается до уровня Андроида в перевариваемых форматах!hosstia@WerkStatt:~$ aplay -v -Dhw:0,0 05\ Halo\ Effect.wav
Воспроизведение WAVE '05 Halo Effect.wav' : Signed 24 bit Little Endian in 3bytes, Частота 96000 Гц, Стерео
aplay: set_params:1233: Остсутствует частота оцифровки
Available formats:
- U8
- S16_LE
Audigy 2 NX можетhosstia@WerkStatt:/media/hosstia/Data/MORG$ aplay -v -Dhw:1,0 "05 Halo Effect.wav"
Воспроизведение WAVE '05 Halo Effect.wav' : Signed 24 bit Little Endian in 3bytes, Частота 96000 Гц, Стерео
Hardware PCM card 1 'SB Audigy 2 NX' device 0 subdevice 0
Its setup is:
stream : PLAYBACK
access : RW_INTERLEAVED
format : S24_3LE
subformat : STD
channels : 2
rate : 96000
exact rate : 96000 (96000/1)
msbits : 24
buffer_size : 48000
period_size : 12000
period_time : 125000
tstamp_mode : NONE
period_step : 1
avail_min : 12000
period_event : 0
start_threshold : 48000
stop_threshold : 48000
silence_threshold: 0
silence_size : 0
boundary : 6755399441055744000
appl_ptr : 0
hw_ptr : 0
Китаец вообще не понял, что от него хотят, а с обычной композицией справится без труда:hosstia@WerkStatt:~$ aplay -v -Dhw:2,0 05\ Halo\ Effect.wav
Воспроизведение WAVE '05 Halo Effect.wav' : Signed 24 bit Little Endian in 3bytes, Частота 96000 Гц, Стерео
aplay: set_params:1233: Остсутствует частота оцифровки
Available formats:
- S16_LE
hosstia@WerkStatt:~$ aplay -v -Dhw:2,0 "Emir Kusturica & The No Smoking Orchestra - 2000 - Unza Unza Time/02 - Djindji Rindji Bubamara.wav"
Воспроизведение WAVE 'Emir Kusturica & The No Smoking Orchestra - 2000 - Unza Unza Time/02 - Djindji Rindji Bubamara.wav' : Signed 16 bit Little Endian, Частота 44100 Гц, Стерео
Hardware PCM card 2 'USB PnP Sound Device' device 0 subdevice 0
Можно ли воспроизвести "05 Halo Effect.wav" на китайской карте. Оказывается да, можно, но как минимум потребуется сборка ALSA с библиотекой ресемплера,
и явное указание совместимой с картой частоты дискретизации и формата данных:
hosstia@WerkStatt:~$ aplay -v -Dplughw:CARD=2,DEV=0 -r48000 -fS16_LE "05 Halo Effect.wav"
Внимание: формат изменён на S24_3LE
Воспроизведение WAVE '05 Halo Effect.wav' : Signed 24 bit Little Endian in 3bytes, Частота 96000 Гц, Стерео
Plug PCM: Rate conversion PCM (48000, sformat=S16_LE)
Converter: libspeex (builtin)
Репутация: 66830 Проверил свою сабру u2 - играет 24 бита. Но вот апсемплить из 16 отказывается, т.к. нет ресэмплера. Что посоветуете? Собирать альсу из исходников или все же есть надежда найти готовый бинарник для rk3066? Является ли альса платформозависимой? А Сборку с ladspa не попробовать ли мне?
Ресемплер встраивается в /system/lib/hw/audio.primary.rk30board.so при условии, что собрана и работоспособна библиотека /system/lib/libspeex.so (её также можно собрать из externals/speex, добавив в дерево устройства перед сборкой). Бинарники для начала проще попробовать и посмотреть,на что ругаться будут.
LADSPA хороша для фильтров и задержек, но для ресемплинга вроде не подходит.
Репутация: 66830 Нашёл у себя в текущей прошивке libspeexresampler.so libspeexwrapper_ub.210303130.so libspeexwrapper_ub.210304060.so
Думаю эта приставка к врапперу двух версий - ненужный паравоз, нуждающийся в обрезании. Что делать?
Далее по документации http://www.speex.org/docs/manual/speex-manual/ необходимо определить, какие функции из найденых библиотек могут быть полезны для реализации недостающего функционала.
Следующий шаг - расширить библиотеку AudioHAL собственным кодом, исходя из поставленной задачи ( к примеру, безусловнр конвертировать весь output-поток на USB-устройства в 24-bit).
Самый сложный шаг - это сборка в среде SDK Android для rk30 с параллельной отладкой, т.к. библиотека собирается для существующей прошивки с неизвестной исходной конфигурацей android device-tree, так как зависимые библиотеки придется выгружать из прошивки в SDK и вручную линковать при сборке. Зависимости можно отслеживать как по сообщениям в logcat при пробных запусках, так и непосредственно по функциям в исходном коде. Задача нетривиальная и, в общем-то, разовая.
Репутация: 66830 Изучайте содержание /etc/audio_policy.conf - там все понятно.
Если задача повысить разрешение на штатном кодеке гу, то это бессмысленная затея в виду его аппаратных ограничений.
Вы не заставите его переваривать частоты и битность, которые он не поддерживает.
Единственный вариант - usb-dac или конвертер usb-spdif.
Но опять же микшер андроид 4.4 уменьшит разрешение вашего хай-реза, прежде чем вывести звук на устройство.
Без исходников ядра это не исправить. На китай-гу исходников ни у кого нет.
Так что ставить директ-плеер - единственно правильный выход. Но звук на usb будет только от него. Пробуйте USB Audio Player Pro и другие.
Репутация: 0 А можно хотя бы изменить на моём устройстве выходящий сигнал с 44,1/16 на 48/16? От чего это зависит?
А как относитесь к этому проекту? Здесь перестраивается ядро системы.
ARISE Sound Systems ™ - слуховые Исследования в области Sound Enhancement - Magnum Opus 20170506
https://forum.xda-developers.com/and...arch-t3379709#
Социальные закладки