问题: 如何用dspack传输音频? ( 积分: 100 )
分类: 多媒体
来自: 星际天涯, 时间: 2005-07-05 13:12:00, ID: 3124551
我已经用dapack控件做好了视频传输,但在音频传输上却没有找到所需的资料。希望能给出示例,以做参考!
来自: 星际天涯, 时间: 2005-07-05 13:34:44, ID: 3124562
怎么没人回答?是分太少了,还是问题太简单了.
来自: yanleiyi, 时间: 2005-07-05 13:47:32, ID: 3124568
http://www.netyi.net/in.asp?id=yanleiyi有好多网络书下载和源程序好网站
来自: 星际天涯, 时间: 2005-07-05 16:20:23, ID: 3124726
视频传输代码
ImageServer.Canvas.Lock;
try
hr := Grabber.SampleGrabber.GetConnectedMediaType(MediaType);
if hr <> S_OK then
Exit;
try
if IsEqualGUID(MediaType.majortype, MEDIATYPE_Video) then
begin
BIHeaderPtr := nil;
if IsEqualGUID(MediaType.formattype, FORMAT_VideoInfo) then
if MediaType.cbFormat = SizeOf(TVideoInfoHeader) then
BIHeaderPtr := @(PVideoInfoHeader(MediaType.pbFormat)^.bmiHeader);
if not Assigned(BIHeaderPtr) then
Exit;
BitmapHandle := CreateDIBSection(0, PBitmapInfo(BIHeaderPtr)^, DIB_RGB_COLORS, DIBPtr, 0, 0);
if BitmapHandle <> 0 then
begin
if DIBPtr = nil then
Exit;
if BufferLen > Integer(BIHeaderPtr^.biSizeImage) then
BufferLen := BIHeaderPtr^.biSizeImage;
Move(pBuffer^, DIBPtr^, BufferLen);
ImageServer.Picture.Bitmap.Handle := BitmapHandle;
end;
end;
finally
FreeMediaType(@MediaType);
end;
memStream := TMemoryStream.Create;
jpg := TJpegImage.Create;
jpg.Assign(ImageServer.Picture.Bitmap);
jpg.CompressionQuality := 100;
jpg.JPEGNeeded;
jpg.Compress;
jpg.SaveToStream(memStream);
jpg.Free;
if TCPClient.Connected then
begin
try
TCPClient.WriteInteger(memStream.Size);
TCPClient.WriteBuffer(memStream.Memory^, memStream.Size, True);
except
end;
end;
memStream.Free;
finally
ImageServer.Canvas.Unlock;
end;
来自: 星际天涯, 时间: 2005-07-05 16:24:17, ID: 3124732
谁有音频传输代码?大家可以互相交流啊!
我以前的想法是以video的格式传输数据,但转换成流的方式时找不到所对应的方式,所以改成用图片的形式流传送。
可以问问,音频怎么传送?谢谢大家了!
来自: 星际天涯, 时间: 2005-07-06 10:29:09, ID: 3125322
为什么这里的问题恢复这么慢?郁闷![
]
来自: 寻路, 时间: 2005-07-06 14:20:24, ID: 3125641
jpg := TJpegImage.Create;
jpg.Assign(ImageServer.Picture.Bitmap);
jpg.CompressionQuality := 100;
jpg.JPEGNeeded;
jpg.Compress;
jpg.SaveToStream(memStream);
jpg.Free;
这是什么啊,mepg-1的压缩啊
来自: 星际天涯, 时间: 2005-07-06 17:03:27, ID: 3125927
不是,是jpg的压缩,并存成流的形式.
来自: 星际天涯, 时间: 2005-07-06 17:05:25, ID: 3125934
上面的代码是视频的传输,没有音频的传输.
你有音频传输的代码吗?
来自: 寻路, 时间: 2005-07-06 17:39:36, ID: 3125976
TJpegImage就是mepg-1压缩啊!
这样不行吧,要是这样压缩就可以了,那就简单了!
来自: 星际天涯, 时间: 2005-07-06 18:03:55, ID: 3126001
TJPEGImage encapsulates a jpeg graphic.
和mpeg-1因该是两种不同的格式.
来自: 星际天涯, 时间: 2005-07-07 10:07:41, ID: 3126523
有了解的吗?没有就结了.
来自: 星际天涯, 时间: 2005-07-07 12:22:07, ID: 3126820
有帮忙的吗?大家帮帮忙啊!
来自: 星际天涯, 时间: 2005-07-12 12:19:38, ID: 3131750
谁有思路,可以再加分。
来自: 寻找合作, 时间: 2005-07-12 14:25:41, ID: 3131897
我有qq:364893066
来自: laoli, 时间: 2005-07-13 17:47:53, ID: 3133567
//发送
procedure TForm1.ACMWaveIn1Data(data: Pointer;
size: Integer);
var
myStream:TMemoryStream;
begin
myStream:=TMemoryStream.Create;
try
myStream.Write(Data^,size);
if idTCPClient1.Connected then
begin
idTCPClient1.WriteInteger(memStream.size);
idTCPClient1.WriteBuffer(myStream.Memory^, myStream.Size, True);
end;
finally
myStream.Free;
end;
end;
//接收
procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var mystream:TMemoryStream;
BuffLen: Integer;
begin
BuffLen := AThread.Connection.ReadInteger;
myStream:=TMemoryStream.create;
try
AThread.Connection.ReadStream(myStream,BuffLen);
ACMWaveOut1.PlayBack(myStream,BuffLen);
//播放接收到的数据
finally
myStream.free;
end;
end;
来自: 星际天涯, 时间: 2005-07-14 11:25:48, ID: 3134263
接受答案了.
来自: 星际天涯, 时间: 2005-07-14 18:46:57, ID: 3134894
to laoli
为什么没有反应?能把你的QQ给我吗?有些问题还想请教一下。
得分大富翁: laoli