精易论坛

标题: 极致简约音乐播放器源码 [打印本页]

作者: 哎哟你干嘛    时间: 2025-3-1 21:50
标题: 极致简约音乐播放器源码
源码介绍:
一款简约而美观的音乐播放器,其设计注重用户体验,提供高品质音频播放服务,用户可以在色彩斑斓的背景中享受音乐带来的愉悦感受,这款播放器操作简便,适合所有音乐爱好者,更改歌曲的链接在script.js文件,歌曲放进去服务器根目录,链接地址复制进script.js的歌曲识别常量位置,再次访问网站或者刷新首页页面即可开始播放音乐



作者: qq73s5456    时间: 2025-3-1 22:09
#在这里快速回复#如果您要查看本帖隐藏内容请回复
作者: 聿聿    时间: 2025-3-1 22:21
感谢分享
作者: jilabc1    时间: 2025-3-1 22:58

作者: fjsystem    时间: 2025-3-1 23:02
感谢分享
作者: 灵海雪缘    时间: 2025-3-1 23:46

作者: 1347379245    时间: 2025-3-2 01:30
感谢分享
作者: kenan236    时间: 2025-3-2 02:13
66666666666666666666
作者: 非善类    时间: 2025-3-2 04:39
感谢分享
作者: yllove88    时间: 2025-3-2 06:57
我来看看
作者: renhe2018    时间: 2025-3-2 07:17
不错,界面很简洁。
作者: kuyang199    时间: 2025-3-2 09:35
unit LoadServerList;   interface  uses   Windows, SysUtils, Classes, IdHTTP;  type   TServerList = record     SName: string[100];     Note : string[20];     Addr: string[15];     Port: Word;   end;    PTServerList = ^TServerList;    _ServerList = array of TServerList;  function Q_PosStr(const FindString, SourceString: string; StartPos: Integer = 1): Integer; function LoadUrlList(url, Burl: string): _ServerList; function EncodeServerFile(var Sou: TMemoryStream): Boolean; function DecodeServerFile(var Sou: TMemoryStream): Boolean; function GetDivStrEx(var source: AnsiString; Tag : AnsiChar): AnsiString; function DecodeMakeStr(S: string): string; implementation  function DecodeMakeStr(S: string): string; var   Len, i: Integer; begin   Result := '';   if S <> '' then begin     for i := 1 to Length(S) do begin       if ((i mod 2) = 1) then         Result := Result + Chr(StrToInt('0x' + Copy(S, i, 2)));     end;     Len := Length(Result);     if Len > 0 then       for i := 1 to Len do         Result[i] := Char(Ord(Result[i]) xor $aa xor Len xor i);   end; end;   function Q_PosStr(const FindString, SourceString: string; StartPos: Integer): Integer; asm         PUSH    ESI         PUSH    EDI         PUSH    EBX         PUSH    EDX         TEST    EAX,EAX         JE      @@qt         TEST    EDX,EDX         JE      @@qt0         MOV     ESI,EAX         MOV     EDI,EDX         MOV     EAX,[EAX-4]         MOV     EDX,[EDX-4]         DEC     EAX         SUB     EDX,EAX         DEC     ECX         SUB     EDX,ECX         JNG     @@qt0         XCHG    EAX,EDX         ADD     EDI,ECX         MOV     ECX,EAX         JMP     @@nx @@fr:   INC     EDI         DEC     ECX         JE      @@qt0 @@nx:   MOV     EBX,EDX         MOV     AL,BYTE PTR [ESI] @@lp1:  CMP     AL,BYTE PTR [EDI]         JE      @@uu         INC     EDI         DEC     ECX         JE      @@qt0         CMP     AL,BYTE PTR [EDI]         JE      @@uu         INC     EDI         DEC     ECX         JE      @@qt0         CMP     AL,BYTE PTR [EDI]         JE      @@uu         INC     EDI         DEC     ECX         JE      @@qt0         CMP     AL,BYTE PTR [EDI]         JE      @@uu         INC     EDI         DEC     ECX         JNE     @@lp1 @@qt0:  XOR     EAX,EAX @@qt:   POP     ECX         POP     EBX         POP     EDI         POP     ESI         RET @@uu:   TEST    EDX,EDX         JE      @@fd @@lp2:  MOV     AL,BYTE PTR [ESI+EBX]         CMP     AL,BYTE PTR [EDI+EBX]         JNE     @@fr         DEC     EBX         JE      @@fd         MOV     AL,BYTE PTR [ESI+EBX]         CMP     AL,BYTE PTR [EDI+EBX]         JNE     @@fr         DEC     EBX         JE      @@fd         MOV     AL,BYTE PTR [ESI+EBX]         CMP     AL,BYTE PTR [EDI+EBX]         JNE     @@fr         DEC     EBX         JE      @@fd         MOV     AL,BYTE PTR [ESI+EBX]         CMP     AL,BYTE PTR [EDI+EBX]         JNE     @@fr         DEC     EBX         JNE     @@lp2 @@fd:   LEA     EAX,[EDI+1]         SUB     EAX,[ESP]         POP     ECX         POP     EBX         POP     EDI         POP     ESI end;  function IsPortStr(s : string):Boolean; var   i : Integer; begin   i := -1;   Result := TryStrToInt(s , i) and (i >=0) and (i <= 65535); end;   function GetDivStrEx(var source: AnsiString; Tag : AnsiChar): AnsiString; var   n : Integer; begin   Result := '';   if source <> '' then begin     while (source[1] = Tag) or (source[length(source)] = Tag) do begin       if source[1] = Tag then source := Copy(source , 2 ,Length(source) -1);       if source = '' then Break;       if source[length(source)] = Tag then source := Copy(source , 1 , Length(source) -1);       if source = '' then Break;     end;     if source <> '' then begin       n := Pos(Tag , source);       if n > 0 then begin         Result := Copy(source , 1 , n-1);         source := Copy(source , n + 1 , Length(source) - n);       end       else begin         Result := source;         source := '';       end;      end;    end; end;   function LoadUrlList(url, Burl: string): _ServerList; var   Mem: TMemoryStream;   _IdHTTP: TIdHTTP;   i , z: Integer;   tmp: TStringList;   temp, _Name, _Note , _Addr, _Port, Check: AnsiString;   flag: Boolean; begin   Mem := TMemoryStream.Create;   SetLength(Result, 0);   try     for z := 0 to 1 do begin       _IdHTTP := TIdHTTP.Create(nil);       Mem.Clear;       try         _IdHTTP.Get(url, Mem);         url := Burl;         flag := True;       except         url := Burl;         flag := False;       end;       FreeAndNil(_IdHTTP);        if not flag then begin         url := Burl;         Continue;       end;         tmp := TStringList.Create;       try         flag := DecodeServerFile(Mem);         tmp.LoadFromStream(Mem);         if tmp.Count > 0 then begin           if not flag then begin             Check := tmp[0];             Check := GetDivStrEx(Check, ' ');             if not SameText(Check, '[ServerList]') then             begin               url := Burl;               Continue;             end;           end;           for i := tmp.Count - 1 downto 0 do begin             temp := tmp[i];             _Name := '';             _Note := '';             _Addr := '';             _Port := '';             _Name := GetDivStrEx(temp, '|');             _Note := GetDivStrEx(temp, '|');             _Addr := GetDivStrEx(temp, '|');             _Port := GetDivStrEx(temp, '|');             if (_Name = '') or (_Note = '') or (_Addr = '') or (Length(_Addr) > 15) or (not IsPortStr(_Port)) then               tmp.Delete(i);           end;         end         else         begin           url := Burl;           Continue;         end;         if tmp.Count > 0 then begin           SetLength(Result, tmp.Count);           for i := 0 to tmp.Count - 1 do begin             temp := tmp[i];             _Name := GetDivStrEx(temp, '|');             _Note := GetDivStrEx(temp, '|');             _Addr := GetDivStrEx(temp, '|');             _Port := GetDivStrEx(temp, '|');             Result[i].SName := _Name;             Result[i].Note := _Note;             Result[i].Addr := _Addr;             Result[i].Port := StrToInt(_Port);           end;           Exit;         end;        finally         FreeAndNil(tmp);       end;     end;   finally     FreeAndNil(Mem);   end; end;    function EncodeServerFile(var Sou: TMemoryStream): Boolean; var   iSize ,i: Cardinal; begin   try     Result := False;     if Sou = nil then Exit;     iSize := Sou.Size;     if iSize <= 0 then Exit;     for i := 0 to (iSize - 1) do begin       PDWORD(DWORD(Sou.Memory) + i)^ := PDWORD(DWORD(Sou.Memory) + i)^ xor $aa xor i;     end;     Sou.Position := i;     Sou.Write(iSize, SizeOf(Cardinal));     Result := True;   except     Result := False;   end; end;  function DecodeServerFile(var Sou: TMemoryStream): Boolean; var   iSize, i, Len: Cardinal; begin   try     Result := False;     if Sou = nil then Exit;     Sou.Position := 0;     iSize := Sou.Size;     if iSize <= 0 then Exit;     iSize := iSize - SizeOf(Cardinal);     Move(PDWORD(DWORD(Sou.Memory) + iSize)^  , Len  ,SizeOf(Cardinal));     if Len <> iSize  then Exit;     for i := 0 to Len - 1 do begin       PDWORD(DWORD(Sou.Memory) + i)^ := PDWORD(DWORD(Sou.Memory) + i)^  xor i xor $aa;     end;     Sou.Size := Len;     Result := True;   except     Result := False;   end; end;   end.
作者: chanrey    时间: 2025-3-2 11:01
学习学习
作者: 暗尘弥散    时间: 2025-3-2 11:27
极致简约音乐播放器源码
作者: wh1234567    时间: 2025-3-2 11:29
学习学习
作者: wgqxj    时间: 2025-3-2 12:27
谢谢分享
作者: kingcyl    时间: 2025-3-2 13:12
如果您要查看本
作者: 张澈    时间: 2025-3-2 13:56
cript.js文件,歌曲放进去服务器根目录,链接地址复制进script.js的歌曲识
作者: 美味萝卜    时间: 2025-3-2 15:46
感谢分享
作者: ouyasq    时间: 2025-3-2 16:13
支持一下  感谢分享
作者: 天业电子通讯科    时间: 2025-3-2 16:36
来看看如何  
作者: 皮皮君    时间: 2025-3-2 17:40
来看看如何  
作者: mytiger    时间: 2025-3-2 22:19
感谢分享
作者: engesi1    时间: 2025-3-2 22:40
就喜欢这种简约风格的
作者: 爱雪莹    时间: 2025-3-2 22:41
感谢分享
作者: 艾玛克138    时间: 2025-3-2 22:51
76666666666666666
作者: weihua2018    时间: 2025-3-3 00:31
这个UI还行
作者: please    时间: 2025-3-3 09:37
感谢分享,支持开源!!!
作者: walter97    时间: 2025-3-3 11:16
一款简约而美观的音乐播放器,其设计注重用户体验,提供高品质音频播放服务
作者: 深藏功舆名ゐ    时间: 2025-3-3 21:03
感谢分享,支持开源!!!
作者: 萌新苏苏    时间: 2025-3-3 22:40
6666666666666666666
作者: Demono    时间: 2025-3-4 02:36
哪里还有外链MP3
作者: 515889127    时间: 2025-3-4 10:27
感谢分享
作者: huangzequ123    时间: 2025-3-4 13:36
好东西,收下
作者: f15007937680    时间: 2025-3-4 13:45
  感谢大神分享~!
作者: w3516330    时间: 2025-3-4 14:21
感谢分享,支持一下
作者: wuxiaotong    时间: 2025-3-4 14:35
6666666666666666666666
作者: iaiqol    时间: 2025-3-4 18:44
ddddddddddddddd
作者: 724493954    时间: 2025-3-4 21:31
111优秀,拿走了,谢谢
作者: 薛城    时间: 2025-3-4 22:54
感谢分享,支持开源!!!
作者: xmcx888    时间: 2025-3-5 08:41
感谢分享,支持开源!!!
作者: wanglong1    时间: 2025-3-5 14:20
来学习学习,,
作者: 陈菱新    时间: 2025-3-6 08:39
支持什么格式
作者: jangliqun    时间: 2025-3-8 14:39
楼主辛苦了,谢谢楼主,感谢楼主分享,楼主好人一生平安!!!
作者: xkAnd    时间: 2025-3-8 15:56
这播放器听起来挺酷啊,界面美颜色又丰富,操作还简单,真是音乐爱好者的福音呢。源码研究一下,说不定能自己改点什么小功能出来哈。
作者: 5150    时间: 2025-3-9 22:53
感谢大佬分享
作者: ljx111    时间: 2025-3-9 22:59
感谢分享
作者: sclang168    时间: 2025-3-10 09:39
取运行目录 () + “\test.mp3”
作者: ycs    时间: 2025-3-10 10:43
感谢大佬分享
作者: 长青道长    时间: 2025-3-10 12:25
感谢大佬分享
作者: vhk    时间: 2025-3-11 13:35
来学习学习,,
作者: hahala    时间: 2025-3-12 00:33
看看效果的
作者: 佛泫    时间: 2025-3-12 15:46
来学习学习
作者: 小城1    时间: 2025-3-12 20:14
1111111111111111111111
作者: wuhaolin888    时间: 2025-3-14 19:36
撒的发生都让人个人淘汰果然
作者: toshiteru    时间: 2025-3-14 21:51
111111111111111
作者: 梦里的彩虹糖    时间: 2025-3-16 13:03
学习一下 感谢
作者: 小神155    时间: 2025-3-17 09:11
嘻嘻嘻嘻嘻嘻
作者: ssjc6688    时间: 2025-3-18 22:53
学习一下 感谢
作者: 豆子豆子123    时间: 2025-3-21 04:06
全网VIP音乐
作者: 广西    时间: 2025-3-22 23:06
感谢分享
作者: 小马大大    时间: 2025-3-23 12:48
收藏了
作者: 酷酷的光头强    时间: 2025-3-23 22:07

作者: 图七    时间: 2025-3-28 09:57
感谢分享
作者: le171138028    时间: 2025-3-30 11:02
学习学习学习学习学习
作者: 482643710    时间: 2025-3-30 21:26
555555555555555555555555555




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4