探究tf卡(内存卡)在音频播放器中的播放顺序【指金正音频播放器之类的设备】

首先,【同一个文件路径下的】音频文件,肯定是按复制进tf卡(小卡)的时间顺序,来确定播放顺序的;与音频文件的名字叫什么毫无关系,即使名字前面加序号也毫无用处。

 

【在同一路径下的】音频文件和文件夹之间,优先播放音频文件,然后是文件夹。

 

【在同一路径下的】文件夹和文件夹之间,是按文件夹的创建时间顺序来定播放顺序的。与文件夹的名字叫什么没有关系,与文件夹的最后修改时间也没有关系,只和文件夹的创建时间有关。

 

有人说有的音频播放器是不支持读取文件夹的,必须把所有的文件都按顺序复制到tf卡的根目录才能播放。我虽然没有遇到这种情况,但也可作参考。这样,就只能把所有文件,都按顺序复制到tf卡的根目录了。

 

我不知道是不是只能播放mp3,但我确认m4a是播不了的,播放器不能识别。至于mp4,即使把扩展名改为mp3,也不能播。

 

也有说播放器最多只能播 32GB 的。实测插入 64G 的卡也能播放,但没有试是不是只能播放前32个G。

 

这东西还是挺多限制的。虽然有时候确实挺适合老人的,但其实也挺不智能的。见仁见智吧。

 

试的比较有限,可能某个地方逻辑有误。如果你们发现,请告诉我,谢谢指正。

 

附录:一个相关的自制小工具,用于按顺序批量复制文件,或者批量把文件名里的简体字繁体字互相转换。是Unity 2019.1.9f1做的,C#代码。如果不用Unity,也可以用winform,C#能用的地方,稍微改吧改吧也可以用。

链接:https://pan.baidu.com/s/1S5kGh5ONez8VZWeGH4A7mQ
提取码:xyd5

 

我个人喜欢写一个API类。

using System;
using System.Collections.Generic;

public static class API
{
    public static string ArrayToString<T>(this T[] strList)
    {
        int max = strList.Length;
        string addup = "";
        for (int i = 0; i < max; ++i)
        {
            addup += strList[i].ToString() + ",";
        }

        return addup.Substring(0, addup.Length - 1);
    }
}

用的时候

string[] strList = {"aa","bb"};

Console.WriteLine(strList.ArrayToString());

大致就这意思吧。估计有人说这样效率低。但是这样真的很方便啊。懂的都懂。

 

posted @ 2023-10-27 22:38  还剩几个月  阅读(1651)  评论(0编辑  收藏  举报