MP3播放器价格不断降低,容量一涨再涨。比如的MP3播放器是1G的,闲暇之余很喜欢

用它听评书。但在使用中发现:很难控制拷贝到mp3播放器中的文件顺序,前一章已经是

“孔明用智激周瑜”,后一回才是“刘玄德三顾草庐”。针对这个问题,做了一点研究:

文件播放顺序是播放器中的FAT表中文件的顺序,使用WinHex工具直接察看,可以看到如下:

播放起来是按照 情人—〉海阔天空 –〉光辉岁月 …… 这个顺序。

我猜测拷贝粘贴命令的顺序决定了这个顺序,而选择顺序又是放在什么地方呢?

只有一种可能:剪切板。经过一番试验,果真在剪切板上看到了拷贝的文件名。

于是,设计程序,思路是:取得获得剪切板内容,排序,再放回去。程序界面很简单

3个按钮,1个Memo。程序清单如下:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls,Clipbrd,shellapi,shlobj;

type

TForm1 = class(TForm)

Button1: TButton;

ListBox1: TListBox;

Button2: TButton;

Button3: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject); //获得剪切板上的

var

drophandle  :Thandle;

i,filescount  :integer;

FileName   :array[0..MAX_PATH] of Char;

begin

if clipboard.HasFormat(CF_HDROP) then  //确定剪切板上是文件名称

begin

drophandle:=Clipboard.GetAsHandle(CF_HDROP);

filescount:=DragQueryFile(

Drophandle,

$FFFFFFFF,

Filename,

max_path); //获得文件拖放数目

for i:=0 to filescount-1 do

begin

fillchar(filename,sizeof(filename),0);

if DragQueryFile(drophandle,i, Filename,max_path)>0 then

ListBox1.Items.Add(strpas(@filename));

end; //获取所有拖放文件的文件名,带目录

end;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin    //排序,实际上这部分可以做在上面建立的时候

//为了以后的扩展考虑(比如,针对日期,大小排序等等)

//特别将其放在另外的地方

ListBox1.Sorted:=True;

end;

procedure TForm1.Button3Click(Sender: TObject); //将排序后的文件名称塞回去

var

sFilenames: String;

i: Integer;

hBuffer: HGLOBAL;

pBuffer: PDropFiles;

begin

if ListBox1.Items.Count=0 then exit;

//文件名之间使用 #0 分隔,用#0#0 表示结束 #0#0

sFilenames := '';

for i := 0 to ListBox1.Items.Count - 1 do

sFilenames := sFilenames + ListBox1.Items[i]+ #0;

sFilenames := sFilenames + #0;

hBuffer := GlobalAlloc(GMEM_MOVEABLE or GMEM_ZEROINIT,

SizeOf(DROPFILES) + Length(sFilenames));

pBuffer := GlobalLock(hBuffer);

// 建立 "DROPFILES" 结构体

pBuffer^.pFiles := SizeOf(DROPFILES);

pBuffer := Pointer(Integer(pBuffer) + SizeOf(DROPFILES));

CopyMemory(pBuffer, PChar(sFilenames), Length(sFilenames));

Clipboard.SetAsHandle(CF_HDROP, hBuffer);

end;

end.

试验一下:选定文件,ctrl+c ,用我们的程序先看一下剪切板上的内容

控制mp3播放器中文件顺序相关推荐

  1. php 音频顺序播放,MP3播放器音频文件不按顺序播放的解决方法,简单实用

    MP3播放器对于现在的我们来说很多已经是过去了,但是我们总会有用到它的时候:当你听一些录音课程或者评书故事,亦或者使用迷你音响播放歌曲时常会发现拷贝进MP3播放器中的音频文件根本不按照你自己的想象进行 ...

  2. 远程WEB控制MP3播放器设计(基于mini2440)

    网上有很多 基于mini2440的MP3播放器设计的资料,多是按键控制,这里博主做了些轻微改动,利用远程WEB来控制MP3播放,具体怎么实现,下面会给出,大家先看看效果: WEB界面: 后台运行: 因 ...

  3. php怎么控制mp3播放器,简单的C++ MP3播放器类

    作者:Wong Shao Voon 如果你需要的只是在你的应用程序中播放MP3(例如,在应用程序启动画面播放很短的MP3),对于这样简单的需求,可以使用C++ MP3/WMA DirectShow播放 ...

  4. php怎么控制mp3播放器,【更新2018/12/07】简单的MP3播放器

    本帖最后由 kumamiko 于 2018-12-7 11:02 编辑 snipaste_20181113_122405.png (63.66 KB, 下载次数: 0) 2018-11-13 12:3 ...

  5. 安卓音乐播放器中歌词同步问题

    音乐文件是.lrc格式的,lrc格式的文件,是MP3播放器唯一能识别的歌词文件,在MP3播放器中可以去同步 显示歌词.它是一种包含着"[]"形式的"标签"的.基 ...

  6. 全球音质最好的MP3播放器——BeoPlayer V4.65

    软件大小:25773KB 软件类别:国外软件/音频处理  软件授权:共享版 软件语言:英文 运行环境:Win9x/Me/NT/2000/XP/2003 官方网站(Homepage) 更新日志(Vers ...

  7. android开发--mp3播放器项目源代码(xml文件解析,.lrc,.mp3文件下载,同时显示歌词)

    一.mp3播放器源代码 1.MainActivity.java:在此中主要负责播放器首页的功能,包括服务器上的下载列表,和SD卡上已经下载的mp3文件列表package com.wyt.MP3play ...

  8. 数码相框_通过随机选择的媒体文件轻松加载数码相框和MP3播放器

    数码相框 Has your digital picture or music library become so large that you have a hard time sifting thr ...

  9. 基于嵌入式Linux的MP3播放器的设计与实现

    摘要:本文详细介绍了嵌入式系统的特点以及嵌入式系统开发的流程,分析基于嵌入式Linux的MP3播放器的关键技术,设计和实现了一种基于嵌入式系统的 MP3 播放器.该播放器利用 QT 技术和开源的音频解 ...

最新文章

  1. 让我们一起Go(十三)
  2. CString原理介绍
  3. 天正电气html帮助,天正电气绘图经验心得
  4. 脉冲神经网络基础知识,SpikeProp
  5. 程序设计与算法----分治之归并排序
  6. 无法更新标识列 wechatid_宿州售楼处精神堡垒生产厂家-弈博标识标牌制造
  7. vc++中实现进度条
  8. 珠海空号检测的运行原理
  9. 年底淘宝中小型卖家,要如何提高流量!
  10. 红外线测温仪方案技术参数
  11. 企业微信老是服务器异常,添加好友提示”操作异常”,企业微信需要养号吗?...
  12. 可以使用ActualHeight来判断textblock是否已经trimming
  13. 十余款新品惊艳亮相,华为春季旗舰新品发布会看点满满
  14. 开启CSDN消息免打扰
  15. 国产化直播系统建设方案
  16. python简单代码画皮卡丘-利用Python绘制萌萌哒的皮卡丘
  17. snmp中mib文件解析
  18. Android进阶_Handler和Handler.Callback和Message
  19. 魔域显示服务器失败,魔域手游进不去怎么办 魔域服务器爆满进不去解决办法...
  20. ai人工智能软件开发模式介绍

热门文章

  1. Java访问Hadoop实践
  2. bootstraptable 居中_bootstrap table表格内容居中对齐
  3. 数据库性能监控工具 Spotlight on MySQL
  4. 解释一下自动装箱和自动拆箱?
  5. 文本超出部分显示省略号
  6. JVM面试题目与答案
  7. 删除数据库表中重复数据
  8. 【Python基础学习】—多线程
  9. 超详细Netty入门,看这篇就够了!
  10. 在SpringBoot中整合使用Netty框架