双链播放寻址

播放器以节点为基础播放帧或小结等,当拖动播放进度条时,需要快速移动到播放位置。单向节点链只能向一个方向寻址,如果向后,需要建立配合一个节点链表,
通过索引提取地址,经过实际测试,打开文件建立链表时速度太慢(每个节点值都要读入表中),有一段时间不反应,所以,采用双向链,直接寻址。通过下列双向
节点链可以看出,PrevAddr内容为上一个节点的入口地址,NextAddr内容为下一个节点入口地址,通过地址跳转实现节点移动。经测试,可实现快进快倒功能。

Node1
[42] dwPrevAddr = 0;
[46] dwNextAddr = 463405;
             |
             |
             |
Node2
[463405] dwPrevAddr = 42;
[463409] dwNextAddr = 926768;
                     |
                     |
                     |
Node3
[926768] dwPrevAddr = 463405;
[926772] dwNextAddr = 1390131;
                     |
                     |
                     |
Node4
[1390131] dwPrevAddr = 926768;
[1390135] dwNextAddr = 1853494;

注:

[nnnn] nnnn为节点物理地址
dwPrevAddr 上一个节点地址变量
dwNextAddr 下一个节点地址变量
Node1
[42] dwPrevAddr = 0; 因为不构成环,所以第一个节点的上一个节点地址为0

posted @ 2016-06-20 21:46  hbg200  阅读(130)  评论(0编辑  收藏  举报