我面临的问题是如何将一大堆对象编组到一个XML文件中,如此之大,我无法一步完成整个列表的编组.我有一个方法以块的形式返回这些对象,但随后我使用JAXB编组它们,marshaller返回一个例外,即这些对象不是根元素.对于您希望在一个步骤中编组完整文档的正常情况,这是正常的,但如果我将JAXB_FRAGMENT属性设置为true,也会发生这种情况.
这是所需的XML输出:
<rootElem>
<startDescription></startDescription>
<repeatingElem></repeatingElem>
<repeatingElem></repeatingElem>...
</rootElem>
Run Code Online (Sandbox Code Playgroud)
所以我假设我需要某种类型的侦听器来动态加载下一块重复元素,以便在编写rootElement的结束标记之前将其提供给编组器.但是怎么做呢?到目前为止,我只使用JAXB来编组小文件,而JAXB文档没有给出该用例的大量提示.
我是Android新手.我使用的是android os 2.2.我正在尝试从网址播放流媒体音频和视频.我不知道该怎么做.在googling 3天后,我开始知道我必须使用mediaPlayer和MediaController类.
我曾在互联网上使用不同的不同组合代码,但没有成功.
任何人都可以指导我如何处理流式音频/视频播放.如果我们使用MediaPlayer或Controller类,UI会怎样?在布局的xml文件中有没有相关的东西.
如果没有,那么请告诉我可能是什么代码.
请帮我.
我正在运行的版本(基本上是最新的):
PHP:5.3.1
MySQL:5.1.41
Apache:2.2.14
OS:CentOS(最新)
情况就是这样.
我有数千个非常重要的文件,从客户合同到语音签名(合同的客户授权记录),文件类型包括但不限于jpg,gif,png,tiff,doc,docx,xls,wav,mp3 ,pdf等
所有这些文档目前都存储在多个服务器上,包括Windows 32位,CentOS和Mac等.有些文件也存储在员工台式计算机和笔记本电脑上,有些文件仍然是存储在数百个盒子和文件柜中的硬拷贝.
现在因为客户或律师可以随时要求合同证明,我公司必须能够有效地搜索和找到正确的文件,因此所有这些文件都必须数字化(如果还没有)并且相关进入某种搜索和访问的顺序.
作为程序员,我创建了一个完整的客户关系管理工具,供整个公司使用.这包括客户资料管理,订单和工作跟踪工具,工作/销售创建和管理模块等,以及目前客户资料级别(驾驶执照,信用授权等)或工作中所需的任何文件/销售级别(合同,语音签名等)可以上传到服务器并位于父/子层次结构中,就像Windows资源管理器或任何其他典型的文件管理模型一样.
结构如下:
drivers_license
| - DL_123.jpg
voice_signatures
| - VS_123.wav
| - VS_4567.wav
合同
因此,文件使用PHP和Apache进行上传,并存储在操作系统的文件系统中.在上载时,关于文件的某些信息存储在MySQL数据库中.存储的一些信息是:
表:FileUploads
FileID
CustomerID(文件所属的客户ID,它们都有此.)
JobID/SaleID(相关作业/销售的ID,如果有)
.FileSize
FileType
UploadedDateTime
UploadedBy
FilePath(文件的目录路径是存储在.)
FileName(上传文件的当前文件名,CustomerID和JobID/SaleID的组合,如果适用.)
FileDescription
OriginalFileName(上载时源文件的原始名称,包括扩展名.)
如您所见,文件通过文件名链接到数据库.当我想提供客户的文件下载给用户时,我所要做的就是"SELECT*FROM FileUploads WHERE CustomerID = 123 OR JobID = 2345;" 这将输出我需要的所有文件详细信息,并且使用FilePath和FileName,我可以提供下载链接.
http ... server/FilePath/FileName
这种方法存在许多问题:
有很多原因,其中一些在这里描述:http://www.dreamwerx.net/site/article01.此外,这里也有一篇有趣的文章:sietch.net/ViewNewsItem.aspx?NewsItemID=124.
因此,经过大量研究后,我几乎已经决定将所有这些文件存储在数据库中,如BLOB或LONGBLOB,但在我这样做之前还有很多注意事项.
我知道将它们存储在数据库中是一个可行的选择,但是有许多方法可以存储它们.我也知道存放它们是一回事; 以可管理的方式关联和访问它们完全是另一回事.
此链接提供的文章:dreamwerx.net/site/article01描述了一种将上传的二进制文件拆分为64kb块并使用FileID存储每个块,然后使用标头将实际二进制文件流式传输到客户端的方法.这是一个非常酷的主意,因为它减轻了对服务器内存的预感; 而不是将整个100mb文件加载到RAM然后将其发送到客户端,它一次只做64kb.我已经尝试了这个(并更新了他的脚本),这在一个非常小的测试框架中是完全成功的.
因此,如果您同意这种方法是一个可行的,稳定的和强大的长期选项来存储适度大的文件(1kb到几百megs),以及大量的这些文件,请告诉我您有哪些其他注意事项或想法.
此外,我正在考虑获取当前的"文件管理"PHP脚本,该脚本提供了一个界面,用于管理存储在文件系统中的文件,并将其转换为管理存储在数据库中的文件.如果已经有任何软件可以做到这一点,请告诉我.
我想我可以提出很多问题,并且所有信息都在那里^^所以请讨论这方面的所有方面,我们可以来回传递想法并相互教授.
干杯,
Quantico773
我正在使用HttpURLConnection向服务器写入文件,其中一些文件很大.
final HttpURLConnection conn = (HttpURLConnection) url.openConnection();
Run Code Online (Sandbox Code Playgroud)
前一阵子我写了1 GB或更多的对象.我通过将其设置为流更易管理的块大小来修复它.
final int bufferSize = 1024 * 1024;
[...]
conn.setChunkedStreamingMode(bufferSize);
Run Code Online (Sandbox Code Playgroud)
它在我的笔记本电脑上运行良好,但在其他机器上却崩溃了.经过调查,我发现原因是在写入输出流时发生了内存不足错误.
final OutputStream out = conn.getOutputStream();
final long bytesWritten = IOUtils.copyLarge(in, out);
Run Code Online (Sandbox Code Playgroud)
在copyLarge例程中,我发现它能够执行262145次4096字节的迭代,当它试图越过1 GB行时失败.为java应用程序分配更多内存似乎可以防止这些崩溃,但我认为这应该是不必要的.如果它正在写1 MB的块,那么它应该失败,迭代次数少得多,或者反复写1 MB而没有问题.
更新:结果显示在某些机器上实际上没有调用ChunkedStreamingMode的行设置.如果您没有设置固定/分块流模式,HttpURLConnection只会将所有内容发送到PosterOutputStream/ByteArrayOutputStream.
我已经能够使用AVFoundation的AVAssetReader类将视频帧上传到OpenGL ES纹理中.但是,它有一个警告,因为当它与AVURLAsset指向远程媒体一起使用时会失败.这个失败没有很好的记录,我想知道是否有任何解决方法的缺点.
因此,我正在尝试Web Audio API使用Node.js和Socket.IO解码和播放流式传输到浏览器的MP3文件块.
我的问题是我唯一的选择是AudioBufferSourceNode为每个接收到的音频数据块创建一个新的,还是可以为所有块创建一个AudioBufferSourceNode,只需将新的音频数据附加到源节点AudioBufferSourceNode属性的末尾?
目前,我正在接收我的MP3块,解码并安排它们进行播放.我已经验证了收到的每个块都是一个"有效的MP3块",并且正在被Web Audio API成功解码.
audioContext = new AudioContext();
startTime = 0;
socket.on('chunk_received', function(chunk) {
audioContext.decodeAudioData(toArrayBuffer(data.audio), function(buffer) {
var source = audioContext.createBufferSource();
source.buffer = buffer;
source.connect(audioContext.destination);
source.start(startTime);
startTime += buffer.duration;
});
});
Run Code Online (Sandbox Code Playgroud)
任何有关如何使用新音频数据"更新"Web音频API播放的建议或见解将不胜感激.
我正在测试新的Android Lollipop上的libstreaming,这个代码在之前的版本中运行,似乎启动了异常.
try {
mMediaRecorder = new MediaRecorder();
mMediaRecorder.setCamera(mCamera);
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mMediaRecorder.setVideoEncoder(mVideoEncoder);
mMediaRecorder.setPreviewDisplay(mSurfaceView.getHolder().getSurface());
mMediaRecorder.setVideoSize(mRequestedQuality.resX,mRequestedQuality.resY);
mMediaRecorder.setVideoFrameRate(mRequestedQuality.framerate);
// The bandwidth actually consumed is often above what was requested
mMediaRecorder.setVideoEncodingBitRate((int)(mRequestedQuality.bitrate*0.8));
// We write the ouput of the camera in a local socket instead of a file !
// This one little trick makes streaming feasible quiet simply: data from the camera
// can then be manipulated at the other end of the socket
mMediaRecorder.setOutputFile(mSender.getFileDescriptor());
mMediaRecorder.prepare();
mMediaRecorder.start();
} catch (Exception e) …Run Code Online (Sandbox Code Playgroud) 我试图了解在akka流媒体中做什么.例如:
val sink1:Sink[Int, Future[Int]]=Sink.fold[Int,Int](0)(_ + _)
val flow=Flow[Int].fold[Int](0){(x,y)=> x+y}
val runnable = Source (1 to 10).viaMat(flow)(Keep.right).toMat(sink1)(Keep.both)
Run Code Online (Sandbox Code Playgroud)
谢谢阿伦
我正在为一家公司工作,我们正在为现有应用程序开发视频聊天支持.我已经看过各种各样的解决方案了
现在的挑战是我们希望实现非常高质量的视频流,并且容器应用程序使用C#.NET编码
这是我到目前为止提出的.流数据的网络逻辑用C#编写,视频压缩用VC++编写,并尽可能使用pinvoke或CLI调用VC++ dll.
我正在寻找一个在这个领域更有经验的人,如果我正确的话还是可以改进,我可以建议我.
最终目标是高质量的视频流.编解码器可以是h.2633,h.264等任何东西.
streaming ×10
android ×2
java ×2
akka ×1
akka-stream ×1
algorithm ×1
audio ×1
avfoundation ×1
blob ×1
c# ×1
chat ×1
exception ×1
html ×1
http-chunked ×1
http-headers ×1
ios ×1
javascript ×1
jaxb ×1
media-player ×1
mysql ×1
objective-c ×1
opengl-es ×1
php ×1
scala ×1
video ×1