Skip to content

Commit e19bd12

Browse files
committed
✨ mv audio to optional dep
1 parent 04decef commit e19bd12

4 files changed

Lines changed: 38 additions & 27 deletions

File tree

src/badapple/__main__.py

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
1-
import os
21
import sys
32
import argparse
4-
from multiprocessing import Process
53

64
from .play import play
7-
from .audio import help_audio, get_names
5+
from .audio import help_audio, with_anyplayer
86
from .util import get_info
97
from .builtin_files import BA_BA, BA_MP4, BA_MP3, BA_WAV, ba_get
108

@@ -40,20 +38,23 @@
4038
help='font data file',
4139
default=''
4240
)
43-
parser.add_argument(
44-
'--audio',
45-
help='audio file (use %s, %s or %s to load built-in audio)' % (
46-
BA_WAV,
47-
BA_MP3,
48-
BA_MP4,
49-
),
50-
default=''
51-
)
52-
parser.add_argument(
53-
'--audio_player',
54-
help='audio player [%s]' % ' '.join(get_names()),
55-
default=''
56-
)
41+
42+
if with_anyplayer:
43+
from anyplayer import get_names
44+
parser.add_argument(
45+
'--audio',
46+
help='audio file (use %s, %s or %s to load built-in audio)' % (
47+
BA_WAV,
48+
BA_MP3,
49+
BA_MP4,
50+
),
51+
default=''
52+
)
53+
parser.add_argument(
54+
'--audio_player',
55+
help='audio player [%s]' % ' '.join(get_names()),
56+
default=''
57+
)
5758

5859
parser.add_argument(
5960
'-s', '--scale',
@@ -103,13 +104,17 @@
103104
p_list = list()
104105

105106
video = ba_get(a.input)
106-
audio = ba_get(a.audio)
107+
audio = None
108+
player = None
109+
if with_anyplayer:
110+
audio = ba_get(a.audio)
111+
player = a.audio_player
107112

108113
try:
109114
play(
110115
p_list=p_list,
111116
video=video, output=a.output,
112-
font=a.font, audio=audio, player=a.audio_player,
117+
font=a.font, audio=audio, player=player,
113118
x=x, y=y, fps=a.rate,
114119
need_clear=need_clear, contrast=a.contrast, preload=a.preload,
115120
debug=a.debug

src/badapple/audio.py

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,21 @@
11
import os
22

33
from .util import get_info
4-
from anyplayer import get_names, get_availables, get_available_player, Player
4+
5+
with_anyplayer = True
6+
7+
try:
8+
import anyplayer
9+
except ImportError:
10+
with_anyplayer = False
511

612

713
def help_audio() -> None:
14+
if not with_anyplayer:
15+
print('Please install module anyplayer to play audio', flush=True)
16+
return
17+
18+
from anyplayer import get_names, get_availables
819
players = get_names()
920
availables = get_availables()
1021
s = 'usage: badapple --audio_player AUDIO_PLAYER [options] ... \n\n'
@@ -18,11 +29,7 @@ def help_audio() -> None:
1829
print(s, end='', flush=True)
1930

2031

21-
def get_player(
22-
audio: str,
23-
player: str,
24-
video: str = None,
25-
) -> Player:
32+
def get_player(audio: str, player: str, video: str = None):
2633
if not audio:
2734
if not player:
2835
return None
@@ -33,4 +40,5 @@ def get_player(
3340
audio = os.path.abspath(audio)
3441
open(audio, 'rb').close()
3542

43+
from anyplayer import get_available_player
3644
return get_available_player(player, audio, err=True)

src/badapple/play.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import os
22
import cv2
33
import numpy as np
4-
from multiprocessing import Process
54

65
from .util import get_func, Timer, Font
76
from .audio import get_player

src/badapple/replay.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import os
2-
from multiprocessing import Process
32

43
from .util import get_func, Timer
54
from .audio import get_player

0 commit comments

Comments
 (0)