Поиск по этому блогу

понедельник, 12 октября 2020 г.

Send to SD card - сохранение на карту памяти из меню "Поделиться" в приложении для Android

Когда в приложении для Android открываешь меню "Поделиться", то там можно увидеть всё что угодно - и "Bluetooth", и "Сообщения", и "Обмен с окружением" и какой-то "Android Beam", но по умолчанию отсутствует самый логичный пункт - "Сохранить на карту памяти". Почему разработчики Android его не добавили я не знаю, но хорошо, что у нас есть F-Droid, в котором выложено приложение, исправляющее этот недочёт. Это приложение называется "Send to SD card":

После установки этого приложения в списке приложений появляется иконка "Настройки отправки на SD карту", нажав на которую, можно настроить папку, куда приложение будет сохранять отправляемый файл (я указал "Начальная папка" = "Последняя папка", чтобы приложение сохраняло файл в последнюю выбранную мною папку). И теперь при нажатии на иконку "Поделиться" в списке выбора появится иконка "SD карта", нажав на которую можно сохранить файл на карту памяти:



пятница, 17 апреля 2020 г.

Назначения профиля по умолчанию для PulseAudio

Начиная с какого-то момента (возможно, после перехода на очередной релиз), у меня в моём Linux Fedora перестал работать звук.
После каждой загрузки системы приходилось запускать pavucontrol, переходить на вкладку Конфигурация, и вместо выбранного по умолчанию профиля "Цифровой стерео (IEC958) выход" перевыбирать "Аналоговый стерео выход":
 

Разумеется, в какой-то момент мне это надоело, и я начал искать способ, как сделать так, чтобы профиль "Аналоговый стерео выход" устанавливался при загрузке системы автоматически. Простого способа, такого например, как кнопка "Установить по умолчанию" для профиля в том же самом pavucontrol-е, я не нашёл (что и понятно, это же Linux!), поэтому пришлось немного поразбираться с настройками PulseAudio.
Всё оказалось не так страшно. Даже совсем нестрашно. Но какое-то время на поиск решения всё же пришлось потратить. Надеюсь, что теперь кому-то смогу это время сэкономить.

Итак, в моём случае решение сводилось к правке файла /etc/pulse/default.pa. В самом конце я добавил:
set-card-profile alsa_card.pci-0000_00_1b.0 output:analog-stereo
set-sink-port alsa_output.pci-0000_00_1b.0.analog-stereo analog-output-lineout

И всё заработало!
После перезагрузки устанавливался нужный профиль и выбирался нужный порт для вывода звука - линейный выход.

Значения параметров для этих команд в вашем случае могут быть другие. Их можно посмотреть с помощью "pacmd list-cards" (вывод команды сокращён для удобства чтения; значения интересующих нас параметров выделены красным цветом):
$ pacmd list-cards
1 card(s) available.
    index: 0
 name: <alsa_card.pci-0000_00_1b.0>
 driver: <module-alsa-card.c>
 owner module: 6
 properties:
  alsa.card = "0"
  alsa.card_name = "HDA Intel"
  ...
 profiles:
  input:analog-stereo: Аналоговый стерео вход (priority 65, available: no)
  output:analog-stereo: Аналоговый стерео выход (priority 6500, available: no)
  output:analog-stereo+input:analog-stereo: Аналоговый стерео дуплекс (priority 6565, available: no)
  output:analog-surround-21: Аналоговый объёмный 2.1 выход (priority 1300, available: no)
  ...
  output:iec958-stereo: Цифровой стерео (IEC958) выход (priority 5500, available: unknown)
  output:iec958-stereo+input:analog-stereo: Цифровой стерео (IEC958) выход + Аналоговый стерео вход (priority 5565, available: no)
  off: Выключено (priority 0, available: unknown)
 active profile: <output:analog-stereo>
 sinks:
  alsa_output.pci-0000_00_1b.0.analog-stereo/#6: Встроенное аудио Аналоговый стерео
 sources:
  alsa_output.pci-0000_00_1b.0.analog-stereo.monitor/#6: Monitor of Встроенное аудио Аналоговый стерео
 ports:
  analog-input-front-mic: Фронтальный микрофон (priority 8500, latency offset 0 usec, available: no)
   properties:
    device.icon_name = "audio-input-microphone"
  ...
    
  analog-output-lineout: Линейный выход (priority 9000, latency offset 0 usec, available: no)
   properties:
    
  analog-output-headphones: Наушники (priority 9900, latency offset 0 usec, available: no)
   properties:
    device.icon_name = "audio-headphones"
  iec958-stereo-output: Цифровой выход (S/PDIF) (priority 0, latency offset 0 usec, available: unknown)
   properties:
Для команды set-card-profile нас интересуют:
  • Имя звуковой карты. В моём случае это "alsa_card.pci-0000_00_1b.0".
  • Имя профиля. В моём случае это "output:analog-stereo".
Для команды set-sink-port нас интересует:
  • Имя sink-а. В моём случае это "alsa_output.pci-0000_00_1b.0.analog-stereo".
  • Имя порта. В моём случае это "analog-output-lineout". Если бы я захотел, чтобы по умолчанию звук выводился на наушники, то в качестве имени порта я бы указал "analog-output-headphones".

Перед тем, как изменять файл /etc/pulse/default.pa нужно:
  1. Сделать его резервную копию. Во-первых, потому что нужно всегда делать резервные копии файлов настроек перед их редактированием, а во-вторых, потому что если в этом файле накосячить, то PulseAudio вообще не запустится.
  2. Проверить правильность ваших параметров, запустив предварительно подготовленные команды через pacmd в терминале. Например:
  3. $ pacmd set-card-profile alsa_card.pci-0000_00_1b.0 output:analog-stereo
    $ pacmd set-sink-port alsa_output.pci-0000_00_1b.0.analog-stereo analog-output-lineout