考虑很久了,也没解决,高手帮帮忙呀!

lwbhero 2003-05-25 10:11:47
做一播放器(用mediaplayer控件),用ListBox做播放列表,可以循环或是随机播放该列表中的文件,并且可以随时添加或是删除列表中的文件。我的问题是如何保存文件的绝对路径?

列表中只有文件名,不含路径,而mediaplayer播放时要绝对路径,如果把列表中所有文件的绝对路径都保存到Stringlist中浪费内存;如果把绝对路径存到磁盘文件中,每播放一个文件时,都要访问该磁盘文件,而且很不方便定位,如果列表中的文件变化了,磁盘文件也不容易修改;因为列表中的大部分文件都在一个目录里,所以我想应该把文件名目录名分开,这样很多文件只要对应一个目录就行了,但是又不知道怎样实现。(主要是列表中的文件可以随时变化)

不知道winamp以及其他一些有列表的播放器是如何实现的,有这方面经验的大侠提示小弟一下,多谢了!
...全文
35 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
sprewellkobe 2003-05-25
  • 打赏
  • 举报
回复
恭喜恭喜!接分了
lwbhero 2003-05-25
  • 打赏
  • 举报
回复
找到用法了。
lwbhero 2003-05-25
  • 打赏
  • 举报
回复
还是不明白,ListBox1->Items->AddObject(AnsiString S,TObject *AObject)的两个参数是什么意思?
真是菜死了。
lwbhero 2003-05-25
  • 打赏
  • 举报
回复
试试看,如果OK了,马上结帖。
sprewellkobe 2003-05-25
  • 打赏
  • 举报
回复
我想可能是和Scocket类里面的void *Data一样吧,是个附加变量

你不使它可以,使它也行,具体什么时候可以使就是你需要个附加区分变量的时候
ThinkX 2003-05-25
  • 打赏
  • 举报
回复
在Tstrings中,每一项都有一个Object属性,它用来携带和此项关联的数据。
Tstrings::AddObject就可以将String和数据一起设置。
Object虽然说是TObject的子类,但是可以放入任何数据,包括一个结构,只要强制转换一下就可以了。
可以用Objects[index]访问这些数据
lwbhero 2003-05-25
  • 打赏
  • 举报
回复
To ThinkX(思考中.求职中)
"TStrings每一项都可以接一个void*的Data,还有什么不够用?" 是什么意思?
我是个菜鸟,不明白阿。
ThinkX 2003-05-25
  • 打赏
  • 举报
回复
TStrings每一项都可以接一个void*的Data,还有什么不够用?
lwbhero 2003-05-25
  • 打赏
  • 举报
回复
我也考虑过用两个listbox,不过这样有点浪费空间(如果播放列表中有60首mp3,大概得用1k多),当然了,相对于现在的硬件来说这点无关紧要,我只是想知道还有没有更好的办法。
codecb 2003-05-25
  • 打赏
  • 举报
回复
可以用两个ListBox
一个保存绝对路径(不显示它)
一个列表中只有文件名,不含路径
我以前是这样做的
呵呵 有点呆

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧