在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
上次写了b4a 通过xmlrpc 访问rtc 的远程服务,有网友询问如何通过b4a 访问RTC web 的二进制流,例如如何下载 服务器上的照片,其实访问二进制流和访问字符串类似,不同的地方是,由于是通过http 协议,对于二进制流,需要先转换成 base64 编码,到客户端后再再把base64 转换回去成二进制码,就可以了。(注:由于RTC 的bug,需要RTC 6.08 以上的版本) RTC服务器端的代码如下: procedure TForm1.RtcFunction3Execute(Sender: TRtcConnection; Param: TRtcFunctionInfo; Result: TRtcValue); var mys: TRtcFileStream; ss:Trtchugestring; r:Trtcvalue; s:string; begin r:=Trtcvalue.Create; mys:=TRtcFileStream.Create(); mys.Open('d:\test.jpg'); s:= RtcBytesToString( Mime_EncodeEx(mys.Readex(-1),True) ); // 读文件并转换成base64 result.asstring:=s; end; Basci4android 里面的代码也很简单: Sub button2_Click Dim out As OutputStream Dim b As Base64 Dim bb () As Byte s=XMLRPC1.stringCall("getimg",x) bb=b.DecodeStob(s) ' 转换回去 out = File.OpenOutput(File.DirRootExternal, "test.jpg", False) out.WriteBytes(bb,0,bb.Length) ImageView1.Bitmap=LoadBitmap (File.DirRootExternal, "test.jpg") End Sub 服务器和客户端都运行起来,就可以在android 上显示服务器上的照片了 ok.显示正常 2013年7月18日 补记: 上面使用存储卡转换了一下,如果没有存储卡就无法跑了,现在直接在内存中转换
Sub button2_Click Dim s As String Dim b As Base64 Dim bb () As Byte Dim Bitmap1 As Bitmap Dim IpSt As InputStream s=XMLRPC1.stringCall("getimg",x)
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论