转载

解决A6 avant媒体播放器乱序的问题

老婆的奥迪A6 avant,从我的itunes从把曲库COPY到SD卡,插到媒体播放器后,查看每个专辑中歌曲都是乱序的,想了很多方法都不能解决,最后想到,是不是根据文件创建时间排序的?

于是把整个曲库先COPY到电脑中,格式化SD卡,写了一段程度,按名称排序后吴顺序写入,这样时间和名称排序就对应上了。

package com.company;

import java.io.File;
import java.nio.file.Files;
import java.util.Arrays;
import java.util.Comparator;

public class Main {

    public static void main(String[] args) throws  Exception{
        File rootdir = new File("/Users/axman/DeskTop/music"); //曲库目录
        String distroot = "/Volumes/Ercui-SD/";                          //SD卡
        File[] subdirs = rootdir.listFiles();                            //歌手目录
        Arrays.sort(subdirs, new Comparator<File>() {
            @Override
            public int compare(File o1, File o2) {
                return o1.getName().compareTo(o2.getName());
            }
        });
        for (File sub : subdirs) {
            if (sub.isDirectory()) {
                File[] sets = sub.listFiles();                          //专辑目录
                Arrays.sort(sets, new Comparator<File>() {
                    @Override
                    public int compare(File o1, File o2) {
                        return o1.getName().compareTo(o2.getName());
                    }
                });
                for (File set : sets) {
                    if (set.isDirectory()) {
                        File distdir = new File(distroot + sub.getName() + "/" + set.getName());
                        System.out.println(distdir.getPath());
                        distdir.mkdirs();                               //在SD卡上创建歌手目录
                        File[] musices = set.listFiles();
                        Arrays.sort(musices, new Comparator<File>() {
                            @Override
                            public int compare(File o1, File o2) {
                                return o1.getName().compareTo(o2.getName());
                            }
                        });
                        for (File music : musices) {
                            //Copy file to dist/
                            File distfile = new File(distdir, music.getName());
                            Files.copy(music.toPath(),distfile.toPath());   //文件COPY到SD卡上
                            Thread.sleep(1);                          //防止同一毫秒COPY两个文件
                        }
                    }
                }
            }
        }
    }
}

然后把SD卡重新插到车上,重新打开,哈哈,一切如愿以偿。

原文  https://blog.csdn.net/axman/article/details/88884062
正文到此结束
Loading...