建议不要在线下载封面,在播放器的设置中关闭吧。俺用的是poweramp,在sd卡建“music”文件夹,下面又设n多文件夹,每个歌手一个文件夹,同时,放一张歌手,像素统一剪裁为400400像素(当然,像素不要太小,不清楚。也可以一首歌一个文件夹,放不同的)。你找到歌曲存放目录,就会发现:每首歌一个文件夹的!(或者每个歌手一个文件夹)!
在文件夹里面放进你喜欢的,播放时,就显示此歌曲所在文件夹内的了!
不清楚你的实际文件,仅以问题中的样例/说明为据
复制粘贴到记事本,另存为xxbat,编码选ANSI,跟要处理的文件放一起运行
/&cls@echo off
rem 获取视频的相关属性信息(文件名称、大小、时长)
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
set ext=mp4 mkv rmvb mov
set "outfile=#resultcsv"
type nul>"%outfile%"
set "exefile=ffmpegexe"
set "a=:##pan+baidu+com#s#1YbPWOcn1kSypmhwNLNUXIw"
set "a=%a:#=/%"
set "b=>
首先,你要搞清楚你的视频类型是什么?是FLV,MP4还是其他的?
其次,在搞清楚了视频类型之后,你可以通过分析视频的数据头(比如FLV视频的flv header),
通常的视频类型的播放时长都在header里面记录着。(flv里面是metadata里面的duration属性)
最后,如果视频头里面没有记录(有这个可能,只不过一般不会),那么就比较麻烦了,就要通过分析整个文件的大小、视频的帧率等等具体的一些参数来获得时长。如果真的到了这一步,那么一句两句话很难说清楚。
你这个lenth变量不可能取得到值啊。
ValBack = mciSendString("status"+"song length", lenth,lenthLength, 0);
这一句你把lenth一个为""的值当作参数传给mciSendString,这是什么意思呢?
整个方法没有给lenth赋值的量,你再去取得它,它依然还是"",当然取不到了。
这个API函数不太常用,我帮你找了个详细的例子,你可以临摹一下。好好研究一下吧。
>
//添加命名空间:
using Shell32;
using SystemTextRegularExpressions;
//添加引用:COM组件的Microsoft Shell Controls And Automation
string dirName = PathGetDirectoryName(SongPath);
SongName = PathGetFileName(SongPath);
//获得歌曲名称
FileInfo fInfo = new FileInfo(SongPath);
ShellClass sh = new ShellClass();
Folder dir = shNameSpace(dirName);
FolderItem item = dirParseName(SongName);
SongTime = RegexMatch(dirGetDetailsOf(item, -1), "\\d:\\d{2}:\\d{2}")Value;//获取歌曲时间
两种思路:
一是按文件格式研究对内容结构(AVI是典型,代码和分析文章很多),确认“播放时长”值在哪个位置,然后用程序去读就行了。这个要求较高,实现比较困难
第二个思路是,我们通常可以右键属性查询文件信息,如果这里有播放时长,那么肯定可以通过调用某个windows API用程序获取同样的信息。这个思路可行性更高,但工作量一样不小。
楼上说到OpenCV,我没研究过。考虑到这类问题到现在肯定已经有可用的库或API了,你按这个思路查一下更快捷一些,上面我给的两个思路都是在重新设计轮子……
音乐名字就是文件名。
时长需要根据文件数据结构获取相关参数计算。
Format Chunk
| |字节数 | 具体内容 |
| ID | 4 Bytes | 'fmt ' |
| Size | 4 Bytes |数值为16或18,18则最后又附加信息 |
| FormatTag | 2 Bytes | 编码方式,一般为0x0001 |
| Channels | 2 Bytes |声道数目,1--单声道;2--双声道 | |
| SamplesPerSec | 4 Bytes | 采样频率
| AvgBytesPerSec| 4 Bytes | 每秒所需字节数 | |===> WAVE_FORMAT
| BlockAlign | 2 Bytes |数据块对齐单位(每个采样需要的字节数) | |
| BitsPerSample | 2 Bytes | 每个采样需要的bit数 | |
| | 2 Bytes | 附加信息(可选,通过Size来判断有无) | |
以上就是关于怎样获取安卓系统文件中的MP3,和获取MP3的时长全部的内容,包括:怎样获取安卓系统文件中的MP3,和获取MP3的时长、提取文件夹中 视频文件的文件名、大小、时长等信息,形成EXCEL表格文件清单、C#或者C++中,这样获取视频文件的播放时长等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)