如何将播放列表歌曲从android导出到Windows PC

时间:2016-02-12 19:17:27

标签: android export audio-player android-music-player

所以我想将手机上的所有歌曲导出到我的PC,这些歌曲位于我预装音乐播放器的特定播放列表中。应该集成的功能imho。但它不是,因为音乐文件存储在许多不同的目录中,有些甚至在外部SD卡上,我不想手动执行此操作。

谷歌搜索没有返回任何有价值的信息,三星凯斯似乎没有提供这种功能,所以我自己写了一个批处理文件,并认为我可以分享。我在这里这样做是因为使用我的文件的人应该基本了解他们将要做什么,当他们是stackoverflow的用户时他们可能会有。

1 个答案:

答案 0 :(得分:2)

对于此解决方案,您需要安装adb

如何使用我的文件:

<强> 1。使用音乐路径创建文件

This app会自动执行此操作,并且还允许导入播放列表(不包含音乐文件)。但您也可以通过其他方式创建该文件,例如用手。确保每个文件路径都在新行上。空间还可以。

  

/storage/extSdCard/Instalok/Media__t4p3f3.mp3   /storage/extSdCard/Instalok/Media__t6p5f3.mp3   /storage/extSdCard/Instalok/Media__t8p7f3.mp3   /storage/emulated/0/books/GRETE_PAIA_San_Sebastiano.mp3   / storage / emulated / 0 / mp3 / the prodigy - 3 kilos.m4a
  /storage/emulated/0/mp3/Mermaid.mp3

上面的示例文件。 将该文件调用playlist.txt并将其存储在我的批处理文件旁边的PC上。

<强> 2。确保您的手机已准备就绪

通过USB将您的Android手机与Windows计算机连接并打开CMD。您可能需要在手机上启用USB调试或解锁锁定屏幕并允许访问。如果您的手机已连接,adb devices会将其列出。

第3。检查文件路径

如果您自动生成了文件,则路径可能与adb使用的路径不同。就我而言,adb使用/mnt/sdcard,而文件包含内部sdcard的所有路径/storage/emulated/0/storage/emulated/通过adb存在,但dir 0没有。 在我的情况下,它适用于外部SD卡。 因此,请使用adb shell和您常用的导航方式检查您的路径:cdls

如果您的路径与adb需要的路径不同,请在文本文件中替换它,或者使用批处理文件中的SEARCHTEXT REPLACETEXT选项。如果您不需要我的选择,请务必自行更换。

<强> 4。设置目标文件夹 编辑批处理文件并将pathname设置为所需的目标文件夹。确保它已经存在!

<强> 5。 Testrun 将批处理文件存储在与playlist.txt相同的目录中并运行它。它会要求你做一个测试。按y然后按Enter键以显示它将使用的源路径。它还会检查目标文件夹是否存在:如果不存在,则写入将变为红色。 它不会检查源路径,这是你自己的工作。

<强> 6。运行 再次运行它,这次键入除y之外的任何内容。然后按Enter键。这次将真正运行,将指定的文件复制到目标文件夹中。

文件

将其保存为something.bat

@echo off
REM make sure everything is set correctly
REM playlist.txt: place a text file in the same dir as this file
REM               and name it playlist.txt
REM               it should contain all file paths on the phone
REM               each path on a new line
REM                    This can be autogenerated for a playlist by https://play.google.com/store/apps/details?id=org.ssi.playlistbackup
REM pathname: Where should all the files be saved to
REM SEARCHTEXT: Where the file containing all the paths says the file is
REM REPLACETEXT: Where adb shell says the file is
REM Make sure your destination folder at pathname already exists
setlocal enabledelayedexpansion
color 0f
set pathname=F:\Files\Music
set SEARCHTEXT=/storage/emulated/0/
set REPLACETEXT=/mnt/sdcard/
set /p testrun=Is this a testrun? Testrun recommended. (y/n)
if %testrun%==y (

echo Testrun

for /F "tokens=*" %%A in (playlist.txt) do (
    set filename=%%~nxA
    set remotename=%%A
    REM replace the path with the path as adb uses it. 
    REM use "adb shell
    REM     >> ls   and >>cd
    REM " to find it out
    SET string=!remotename!
    set fixedremotepath=!string:%SEARCHTEXT%=%REPLACETEXT%!

echo I will try to load this from !fixedremotepath!  to !pathname!/!filename!
)

echo This warning always appears in Testruns: Make sure you have set all variables as specified in the comments in this file.
echo If the writing turns red, check your destination Path
echo I don't check the origin paths for correctness. If they are wrong, they will be mentioned as not found.
color 0c
cd %pathname%

) else (
for /F "tokens=*" %%A in (playlist.txt) do (
    set filename=%%~nxA
    set remotename=%%A
    REM replace the path with the path as adb uses it. 
    REM use "adb shell
    REM     >> ls   and >>cd
    REM " to find it out
    set SEARCHTEXT=/storage/emulated/0/
    set REPLACETEXT=/mnt/sdcard/
    SET string=!remotename!
    set fixedremotepath=!string:%SEARCHTEXT%=%REPLACETEXT%!

echo I WILL load this from !fixedremotepath!  to !pathname!/!filename!
REM ------------------------------------------------------------
adb pull -p "!fixedremotepath!"  "!pathname!"
REM ------------------------------------------------------------
)
)
pause