Name | Modified | Size | Downloads / Week |
---|---|---|---|
hiddenAudioPlayer.c | 2025-04-20 | 4.0 kB | |
README.md | 2025-04-20 | 4.8 kB | |
haps.c | 2025-04-20 | 164 Bytes | |
hapr.c | 2025-04-20 | 166 Bytes | |
hapk.c | 2025-04-20 | 370 Bytes | |
happ.c | 2025-04-20 | 165 Bytes | |
Totals: 6 Items | 9.7 kB | 0 |
π§ HAP (Hidden Audio Player)
π§ͺ ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
ΠΡΠ³ΠΊΠΈΠΉ ΠΈ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡΠΉ PCM-Π°ΡΠ΄ΠΈΠΎΠΏΠ»Π΅Π΅Ρ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° C, Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ΅ΡΠ΅Π· ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠ°Π½Π°Π» (FIFO). Π Π°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΠΎΠ½Π΅ ΠΊΠ°ΠΊ Π΄Π΅ΠΌΠΎΠ½, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π½ΠΈΠ΅ ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΡ
.pcm
ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΡΠ΅Π»ΡΡ
Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΉ ΠΊΠ°ΠΊ ΠΏΠ»Π΅ΠΉΠ»ΠΈΡΡ.
π§ ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ
- ΠΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅
.pcm
-ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠ΅ΡΠ΅Π· ALSA - ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΉ β ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅Ρ
.pcm
ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΠΎ ΠΏΠΎΡΡΠ΄ΠΊΡ - ΠΠ°ΡΠ·Π°, βΆοΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ βΉ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ
- Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² FIFO
/tmp/pcm_cmd
- Π€ΠΎΠ½ΠΎΠ²ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ (Π΄Π΅ΠΌΠΎΠ½)
π οΈ Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π² ΡΠΈΡΡΠ΅ΠΌΡ
sudo mv hiddenAudioPlayer /usr/local/bin/
sudo mv hapk happ hapr haps /usr/local/bin/
1. Π£ΡΡΠ°Π½ΠΎΠ²ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ
sudo apt update
sudo apt install -y libasound2-dev build-essential ffmpeg
2. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ
gcc hiddenAudioPlayer.c -o hiddenAudioPlayer -lasound -lpthread
gcc hapk.c -o hapk
gcc happ.c -o happ
gcc hapr.c -o hapr
gcc haps.c -o haps
βΉοΈ ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
Π―Π·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ: C + ALSA.
ΠΠ»Π΅Π΅Ρ hiddenAudioPlayer
ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΠΉ ΡΠ°ΠΉΠ», ΡΠ°ΠΊ ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ (Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΠΏΠ»Π΅ΠΉΠ»ΠΈΡΡ) ΠΈ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π΅Ρ Π²ΡΠ΅ .pcm
ΡΠ°ΠΉΠ»Ρ Π² Π½Π΅ΠΉ.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ "ΠΌΠΎΠ»ΡΠ°Π»ΠΈΠ²Π°Ρ" β ΠΎΠ½Π° Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π», ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΠΎΠ½Π΅.
π₯ ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠ΅ΡΠ΅Π· ffmpeg
ΠΡΠΈΠΌΠ΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ .pcm
ΡΠ°ΠΉΠ»Π°:
ffmpeg -i song.mp3 -f s16le -acodec pcm_s16le -ar 44100 -ac 2 output.pcm
ΠΠΎΠΌΠ°Π½Π΄Π° | ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ |
---|---|
ffmpeg |
ΠΠ°ΠΏΡΡΠΊ ΡΡΠΈΠ»ΠΈΡΡ ffmpeg |
-i song.mp3 |
ΠΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΠΉΠ» (Π»ΡΠ±ΠΎΠ΅ Π°ΡΠ΄ΠΈΠΎ) |
-f s16le |
Π€ΠΎΡΠΌΠ°Ρ: Signed 16-bit Little Endian |
-acodec pcm_s16le |
Π―Π²Π½ΠΎΠ΅ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π΅ΠΊΠ° PCM 16-bit LE |
-ar 44100 |
Π§Π°ΡΡΠΎΡΠ° Π΄ΠΈΡΠΊΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ: 44100 ΠΡ (CD ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ) |
-ac 2 |
ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠ°Π½Π°Π»ΠΎΠ²: 2 (ΡΡΠ΅ΡΠ΅ΠΎ) |
output.pcm |
ΠΠΌΡ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° β "Π³ΠΎΠ»ΡΠΉ" PCM ΠΏΠΎΡΠΎΠΊ |
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
- Signed 16-bit little endian (2 Π±Π°ΠΉΡΠ° Π½Π° ΡΡΠΌΠΏΠ»)
- Π§Π°ΡΡΠΎΡΠ° 44100 ΠΡ
- 2 ΠΊΠ°Π½Π°Π»Π° (ΡΡΠ΅ΡΠ΅ΠΎ)
- ΠΠ΅Π· Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΈ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ
β ΡΠΎΠ»ΡΠΊΠΎ Π°ΡΠ΄ΠΈΠΎΠΏΠΎΡΠΎΠΊ
ΠΠΎΠ»Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ:
ffmpeg -i /home/usr/Music/input.mp3 -f s16le -acodec pcm_s16le -ar 44100 -ac 2 /home/usr/pcmMusic/output.pcm
βΉοΈ ΠΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ
-
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ β ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π½ΠΈΡ:
pgrep pcm_player_v2 # ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°: pgrep pcm_player_v2 # (ΠΏΡΡΡΠΎ)
-
ΠΠ΅Π΄Π»Π΅Π½Π½ΠΎ β ΡΠ΅ΡΠ΅Π· FIFO ΠΊΠΎΠΌΠ°Π½Π΄Ρ (ΡΠΊΡΠΈΠΏΡ
haps
):bash echo haps > /tmp/pcm_cmd
-
ΠΡΡΡΡΠΎ β Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ PID (ΡΠΊΡΠΈΠΏΡ
hapk
)
β― ΠΠΎΠΌΠ°Π½Π΄Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ
pause
β ΠΏΠ°ΡΠ·Π° (ΡΠΊΡΠΈΠΏΡhapp
)resume
β ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ (ΡΠΊΡΠΈΠΏΡhapr
)
π€ ΠΠ²ΡΠΎΡ
Grannik
π ΠΠΎΠ½ΡΠ°ΠΊΡΡ
- Π‘Π°ΠΉΡ: Granni
π¦ Π Π΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ
- Codeberg: grxiv
- GitHub: grxiv
- GitLab: grxiv
- SourceForge: grxiv
- NotABug: grxiv
- Gitea (Demo): grxiv
- Gogs (Demo): grxiv
π ΠΠΈΡΠ΅Π½Π·ΠΈΡ
ΠΡΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ MIT.
Π‘ΠΌ. ΡΠ°ΠΉΠ» LICENSE
Π΄Π»Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠ΅ΠΉ.