mpg123을 오디오북 플레이어로 사용하려고 합니다. Linux용 다른 좋은 오디오북 플레이어를 찾을 수 없으며 mpg123이 아마도 최선의 선택이라고 생각합니다.
내 오디오북은 디렉토리별로 구성되어 있으며 트랙 이름에는 번호가 매겨져 있습니다(예: Track-01.mp3, Track-02.mp3 등).
청취를 중단할 때 마지막으로 재생된 위치(트랙과 트랙 내 위치 모두)를 저장한 다음 다음에 들을 때 오디오북의 해당 위치에서 mpg123을 시작할 수 있는 방법을 찾고 있습니다.
이 "마지막 위치" 정보를 디렉터리의 텍스트 파일에 저장하는 것이 가장 좋습니다. 이렇게 하면 audiobooks 디렉터리에 저장된 텍스트 파일을 사용하여 각 오디오북을 마지막 위치에서 시작할 수 있습니다.
비슷한 북마크 기능도 있으면 좋을 것 같습니다. 거의 동일한 구현인 것 같습니다. "마지막 위치" 정보는 "last"라는 텍스트 파일에 저장될 수 있으며, 각 북마크는 Bookmark.N(여기서 N은 단순히 증가됨)이라는 텍스트 파일에 저장될 수 있습니다.
간단한 구현, 어쩌면 간단한 bash 스크립트를 구현하는 것이 가능합니까? 저는 개발자가 아닙니다.
답변1
화면 출력을 사용하여 mplayer
시간이 포함된 출력 파일을 생성할 수 있습니다(초당 약 10회의 속도로 출력). 예방하다큰출력 파일, 이 스크립트는 접미사가 0 또는 1인 2개의 로그 파일 사이를 전환합니다. 교대로 삭제하거나 씁니다. 충돌이 발생하지 않는 한, mplaye가 특정 오디오 재생을 중지한 후에는 하나의 로그만 남게 됩니다.
그런 다음 나머지 로그는 조각에 의해 처리되어 sed
마지막 타임스탬프(십진수 초 형식)로 축소되고 파일에 기록되며 접미사를 추가 .last
하고 로그를 삭제합니다.
이게 스크립트야
file=~/test.mp3
mplayer "$file" 2>&1 |tee <(
awk -v"RS=\r" -v"recs=500" -v"file=$file" '
{ prev = extn
para = int(NR/recs)
extn = para%2
print $2 > file"."extn
if( prev!=extn ) {close(file"."prev)
system("rm -f " "\""file"."prev"\"") }}')
# On exiting mplayer, create the `.last` file
sed -n '/^[.0-9]\+/p' "$file".[01] |
sed -n '$p' > "$file".last
rm -f "$file".[01]
mplayer
다음으로 시작됨마지막위치를 지정하고 다음 명령을 실행합니다.
mplayer -ss $(cat "$file".last) "$file"
답변2
mpg123 개발자이자 유지관리자인 Thomas Orgis는 내 요청에 따라 mpg123에서 이 기능을 ("conplay"라는 스크립트로) 구현했습니다.
그의 설명은 다음과 같습니다
이 작은 래퍼는 지정된 디렉토리(현재 디렉토리에 "." 입력)에서 mpg123을 실행하여 터미널 제어 모드에서 그 안에 있는 모든 *.mp[123] 파일을 재생합니다. 추가 트릭은 재생을 종료한 위치("q" 키를 통해)로 재생 목록 파일(conplay.m3u)을 읽고 업데이트(생성)하여 다음 호출로 돌아가는 것입니다.
이름은 "계속 재생"을 의미합니다. 어떻게 생각하나요? ;-)
나는 이것이 굉장하다고 생각한다! 위의 질문에서 제가 요청한 것과 정확히 일치합니다. 나는 하루 종일 그것을 사용해 왔으며 완벽하게 작동합니다. 나는 매우 행복합니다!
당신은부터 시작할 수 있습니다http://mpg123.org/snapshot
고마워요 토마스!
답변3
@Peter.O의 mplayer 출력 파서가 매우 매력적이라고 생각하지만 한 번 시도해 보시기 바랍니다.MPD, 뮤직 플레이어 데몬? 매우 강력한 음악 플레이어이자 재생 목록 백엔드입니다(내장된 프런트엔드 없음). 마지막 재생 상태(볼륨,트랙, 트랙 위치,트랙이 재생/일시 중지된 경우 등), 데몬이 시작되면(아마도 부팅 중) 재생이 다시 시작됩니다.
여러 개의 콘솔과 GUI 프런트엔드가 있습니다. mpc
콘솔 클라이언트는 매우 간단하며 ncmpcpp
상당히 발전했으며 gmpc
우수한 GTK2 기반 클라이언트입니다.
간단한 스크립트보다 부피가 크지만 재생 목록, 즐겨찾기 등을 처리하는 데 실제로 도움이 되는 동시에 사용 편의성과 다양한 프런트엔드를 제공합니다.