博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用多媒体库 Bass.dll 播放 mp3 [17] : 如何从内存流播放 - 回复 "小李子子" 的问题...
阅读量:5998 次
发布时间:2019-06-20

本文共 2799 字,大约阅读时间需要 9 分钟。

  hot3.png

问题来源:
这是从 修改来的.

代码文件:

unit Unit1;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls;type  TForm1 = class(TForm)    OpenDialog1: TOpenDialog;    Button1: TButton;    Button2: TButton;    Button3: TButton;    Button4: TButton;    procedure FormCreate(Sender: TObject);    procedure Button1Click(Sender: TObject);    procedure Button2Click(Sender: TObject);    procedure Button3Click(Sender: TObject);    procedure Button4Click(Sender: TObject);    procedure FormDestroy(Sender: TObject);  end;var  Form1: TForm1;implementation{$R *.dfm}uses Bass;var  hs: HSTREAM;  mem: TMemoryStream; {新加的}procedure TForm1.FormCreate(Sender: TObject);begin  if HiWord(BASS_GetVersion) <> BASSVERSION then    MessageBox(0, '"Bass.dll" 文件版本不合适! ', nil, MB_ICONERROR);  if not BASS_Init(-1, 44100, 0, 0, nil) then    ShowMessage('初始化错误');end;procedure TForm1.Button1Click(Sender: TObject);var  Mp3Path: string;begin  OpenDialog1.Filter := 'Mp3 文件(*.mp3)|*.mp3|Wav 文件(*.wav)|*wav';  if OpenDialog1.Execute then Mp3Path := OpenDialog1.FileName;  {下面几行是与原来不同的代码}  if not Assigned(mem) then mem := TMemoryStream.Create;  mem.LoadFromFile(Mp3Path);  mem.Position := 0;  BASS_StreamFree(hs);  hs := BASS_StreamCreateFile(True, mem.Memory, 0, mem.Size, 0);  if hs < BASS_ERROR_ENDED then    Text := '打开失败' else Text := string(Mp3Path);end;procedure TForm1.Button2Click(Sender: TObject);begin  BASS_ChannelPlay(hs, False);end;procedure TForm1.Button3Click(Sender: TObject);begin  BASS_ChannelPause(hs);end;procedure TForm1.Button4Click(Sender: TObject);begin  BASS_ChannelStop(hs);end;procedure TForm1.FormDestroy(Sender: TObject);begin  BASS_Free;  if Assigned(mem) then mem.Free; {这也是新加的}end;end.
窗体文件:

object Form1: TForm1  Left = 0  Top = 0  Caption = 'Form1'  ClientHeight = 117  ClientWidth = 202  Color = clBtnFace  Font.Charset = DEFAULT_CHARSET  Font.Color = clWindowText  Font.Height = -11  Font.Name = 'Tahoma'  Font.Style = []  OldCreateOrder = False  OnCreate = FormCreate  OnDestroy = FormDestroy  PixelsPerInch = 96  TextHeight = 13  object Button1: TButton    Left = 16    Top = 17    Width = 75    Height = 25    Caption = #25171#24320    TabOrder = 0    OnClick = Button1Click  end  object Button2: TButton    Left = 112    Top = 17    Width = 75    Height = 25    Caption = #25773#25918    TabOrder = 1    OnClick = Button2Click  end  object Button3: TButton    Left = 112    Top = 48    Width = 75    Height = 25    Caption = #26242#20572    TabOrder = 2    OnClick = Button3Click  end  object Button4: TButton    Left = 112    Top = 79    Width = 75    Height = 25    Caption = #20572#27490    TabOrder = 3    OnClick = Button4Click  end  object OpenDialog1: TOpenDialog    Left = 40    Top = 56  endend

转载于:https://my.oschina.net/hermer/blog/320023

你可能感兴趣的文章
解决小米用蓝牙耳机听歌卡顿
查看>>
javascript 典型闭包的用法
查看>>
Oracle自学笔记(一)
查看>>
将类似 12.56MB 36.89KB 转成 以K为单位的数字【备忘】
查看>>
Android自定义样式
查看>>
大型JavaScript应用程序架构模式
查看>>
一步一步写算法(之洗牌算法)
查看>>
WordPress 后台禁用Google Open Sans字体,加速网站
查看>>
网站推荐的代码自动生成软件实际使用感触
查看>>
jsp获得文件的绝对路径
查看>>
ubuntu 常用生产环境部署配置测试调优
查看>>
【百度地图API】除夕夜,大家一起来赶走“夕”——删除标注功能
查看>>
TCP连接探测中的Keepalive和心跳包
查看>>
【NLP】course
查看>>
JNI- java.lang.UnsatisfiedLinkError: Native method not found
查看>>
Centos查看端口占用情况和开启端口命令
查看>>
delphi 常用属性+方法+事件+代码+函数
查看>>
mac系统上使用压缩包版的mysql(非安装版)
查看>>
CooMark网页颜色取色表
查看>>
JavaScript权威设计--JavaScript表达式与运算符,语句(简要学习笔记六)
查看>>