mirror of
https://github.com/danog/termux-api-package.git
synced 2024-11-29 20:29:00 +01:00
fix termux-media-player
This commit is contained in:
parent
1686e053fd
commit
3714387eb3
@ -1,103 +1,53 @@
|
||||
#!/data/data/com.termux/files/usr/bin/bash
|
||||
set -e -u
|
||||
set -e
|
||||
|
||||
SCRIPTNAME=termux-media-player
|
||||
|
||||
show_usage () {
|
||||
echo "Usage: $SCRIPTNAME cmd [args]"
|
||||
echo;
|
||||
echo -e "help Shows this help"
|
||||
echo -e "info Displays current playback information"
|
||||
echo -e "play Resumes playback if paused"
|
||||
echo -e "play <file> Plays specified media file"
|
||||
echo -e "pause Pauses playback"
|
||||
echo -e "stop Quits playback"
|
||||
echo;
|
||||
echo "--NOTE--"
|
||||
echo "To playback media files they must reside in a publicly"
|
||||
echo "accessible directory, such as /storage."
|
||||
echo "Otherwise, they will fail to load!"
|
||||
echo
|
||||
echo "**Run 'termux-setup-storage' before using!**"
|
||||
echo;
|
||||
echo "help Shows this help"
|
||||
echo "info Displays current playback information"
|
||||
echo "play Resumes playback if paused"
|
||||
echo "play <file> Plays specified media file"
|
||||
echo "pause Pauses playback"
|
||||
echo "stop Quits playback"
|
||||
}
|
||||
|
||||
if [ $# = 0 ]; then
|
||||
show_usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Params we're sending to MediaPlayerAPI
|
||||
PARAMS=""
|
||||
|
||||
play_media () {
|
||||
if [ $# -gt 1 ]; then
|
||||
echo "Error! play only takes one argument which is the name of file to play"
|
||||
exit 1
|
||||
# If no arguments, we should resume the last played media file if it exists
|
||||
elif [ $# -eq 0 ]; then
|
||||
PARAMS="-a resume"
|
||||
else
|
||||
# Make sure we actually receive a file
|
||||
if [ ! -f $1 ]; then
|
||||
echo "Error: Not a file!"
|
||||
exit 1
|
||||
else
|
||||
local file=$(readlink -q -f $1)
|
||||
local PATTERN='.3gp|.flac|.mkv|.mp3|.ogg|.wav$'
|
||||
|
||||
# Ensure that file is a supported media file
|
||||
if ! ls $file | grep -E $PATTERN -q; then
|
||||
echo "Error: File is not a valid media file!"
|
||||
exit 1
|
||||
else
|
||||
PARAMS="-a play --es file $file"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
main() {
|
||||
/data/data/com.termux/files/usr/libexec/termux-api MediaPlayer "$@"
|
||||
}
|
||||
|
||||
media_info () {
|
||||
if [ $# -ne 0 ]; then
|
||||
echo "Error! info takes no arguments!"
|
||||
exit 1
|
||||
fi
|
||||
PARAMS="-a info"
|
||||
}
|
||||
|
||||
pause_media () {
|
||||
if [ $# -ne 0 ]; then
|
||||
echo "Error! pause takes no arguments!"
|
||||
exit 1
|
||||
fi
|
||||
PARAMS="-a pause"
|
||||
}
|
||||
|
||||
stop_media () {
|
||||
if [ $# -ne 0 ]; then
|
||||
echo "Error! stop takes no arguments!"
|
||||
exit 1
|
||||
fi
|
||||
PARAMS="-a stop"
|
||||
}
|
||||
|
||||
# Get command and command args
|
||||
while [ $# -gt 0 ]; do
|
||||
# MediaPlayer command
|
||||
cmd=$1
|
||||
|
||||
# Command arguments
|
||||
arg_array=( $@ );
|
||||
cmd_args=${arg_array[@]:1}
|
||||
|
||||
# Find correct command and execute w/ args
|
||||
case $cmd in
|
||||
"play" ) play_media $cmd_args; break ;;
|
||||
"info" ) media_info $cmd_args; break ;;
|
||||
"pause" ) pause_media $cmd_args; break ;;
|
||||
"stop" ) stop_media $cmd_args; break ;;
|
||||
"help" | * ) echo "$SCRIPTNAME: Invalid cmd: $cmd"; show_usage; exit 1 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
/data/data/com.termux/files/usr/libexec/termux-api MediaPlayer $PARAMS
|
||||
case "$1" in
|
||||
"play" )
|
||||
if [ $# -gt 2 ]; then
|
||||
echo "Error! $SCRIPTNAME can only play one file at a time!"
|
||||
exit 1
|
||||
elif [ $# -gt 1 ]; then
|
||||
if [ ! -f "$2" ]; then
|
||||
echo "Error: '$2' is not a file!"
|
||||
exit 1
|
||||
else
|
||||
main -a play --es file "$(realpath "$2")"
|
||||
fi
|
||||
else
|
||||
main -a resume
|
||||
fi
|
||||
;;
|
||||
"info" | "pause" | "stop" )
|
||||
if [ $# -gt 1 ]; then
|
||||
echo "Error! '$1' takes no arguments!"
|
||||
exit 1
|
||||
else
|
||||
main -a "$1"
|
||||
fi
|
||||
;;
|
||||
"help" | "" )
|
||||
show_usage
|
||||
;;
|
||||
* )
|
||||
echo "$SCRIPTNAME: Invalid cmd: '$1'"
|
||||
show_usage
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
Loading…
Reference in New Issue
Block a user