问候
我正在为游戏制作记分牌(星际争霸II).此记分板是作为具有C#代码隐藏的WPF应用程序制作的.我已经有一个在WinForms中可以使用90%的版本,但我缺乏支持,可以轻松地让它在WPF中看起来更好看.
这个应用程序的要点是在正在运行的游戏之上形成一种叠加.这个游戏是在Fulscreen(窗口模式),所以当在WinForms中我编码它,它应该始终在顶部.它会这样做,这没有问题.
由于WPF中应用程序的主要外观基于具有透明背景的图像,因此我将大多数背景值设置为透明.但是,当我这样做时,整个应用程序都没有通过流媒体软件注册.例如,它只是显示我的桌面或我正在玩的游戏,但不是我的应用程序,即使它在那里.我可以亲眼看到它,但流上的观众不能.
有没有人对这个问题有任何经验,因为它确实是我的头脑.如果它在流上不可见,我的整个应用程序将毫无用处.如果我必须将背景设置为颜色而不是透明,则UI的外观也将被完全拆除.
我基本上试图在C#和WPF中进行游戏覆盖.我已经读过你可以用不同的方式做到这一点但我对C++几乎一无所知,也对DirectX一无所知
感谢您抽出时间阅读以及您可能获得的见解.
编辑:最好的解决方案是覆盖类似于Steam/Xfire/Dolby Axon的覆盖.
编辑2:我对所有的建议都没有运气,所以我基本上使我的图像的透明位不透明,让用户根据他们将使用的流媒体软件决定使用哪一个.
我正在编写一个简单的流式JSON服务.它由间歇性发送的JSON消息组成,持续很长一段时间(数周或数月).
通过普通TCP套接字发送多个JSON消息的最佳实践是什么?
我看过的一些替代方案(及其缺点)是:
这样做是否有良好的,或至少是完善的方式?
我已经形成了一个程序,它有一个字符串,我想要流式传输到现有文本文件的末尾.我所拥有的一切都是这样的:(C++)
void main()
{
std::string str = "I am here";
fileOUT << str;
}
Run Code Online (Sandbox Code Playgroud)
我意识到还有很多东西要添加到这里,如果看起来我要求人们为我编码,我会道歉,但我完全迷失了,因为我以前从未做过这种类型的编程.
我尝试过不同的方法,我已经遇到了互联网,但这是最接近的工作,有点熟悉.
我需要创建一个大型文本文档.我目前StringBuilder用来制作文件然后打电话File.WriteallText(filename,sb.ToString).不幸的是,这现在开始抛出内存异常.
有没有更好的方法来流式传输StringBuilder文件,还是我应该使用其他一些技术?
我需要支持Jersey REST上的简历,我试图这样做:
@Path("/helloworld")
public class RestServer {
@GET
@Path("say")
@Produces("audio/mp3")
public Response getMessage(@HeaderParam("Range") String r ) throws IOException{
String str="/Users/dima/Music/crazy_town_-_butterfly.mp3";
System.out.println(r);
RandomAccessFile f=new RandomAccessFile(str, "r");
int off=0;
int to=(int)f.length();
byte[] data ;
if(r!=null){
String from=r.split("=")[1].split("-")[0];
String t=r.split("=")[1].split("-")[1];
off=Integer.parseInt(from);
to=Integer.parseInt(t);
}
data= new byte[to-off];
f.readFully(data, off, to-off);
ResponseBuilder res=Response.ok(data)
.header("Accept-Ranges","bytes")
.header("Content-Range:", "bytes "+off+"-"+to+"/"+data.length)
.header("Pragma", "no-cache");;
if(r==null){
res=res.header("Content-Length", data.length);
}
f.close();
Response ans=res.build();
return ans;
}
}
Run Code Online (Sandbox Code Playgroud)
我希望能够流式播放MP3,以便浏览器可以搜索音乐,但在Safari中它仍然无法正常工作.有任何想法吗?
经过几天搜索SO和google我开始放弃了,所以我想我也可以在这里发帖.
我正在创建一个应该提供某种视频聊天的Android应用程序.由于这应该是尽可能接近到实时的,我也读到了各种协议,并决定尝试MJPEG对于初学者(不与音频有关现在).
现在流式传输数据让我疯狂.连接建立后,应用程序开始将相机预览帧写入流,但VLC和mplayer都不会开始播放视频.监视连接显示数据已到达.
连接 此代码由异步任务执行,成功通知侦听器:
try
{
ServerSocket server = new ServerSocket(8080);
socket = server.accept();
server.close();
Log.i(TAG, "New connection to :" + socket.getInetAddress());
stream = new DataOutputStream(socket.getOutputStream());
prepared = true;
}
catch (IOException e)
{
Log.e(TAG, e.getMessage();
}
Run Code Online (Sandbox Code Playgroud)
在我的电脑上,我执行'mplayer http://tabletIP:8080',平板电脑注册一个连接(从而启动我的流光和相机预览).这也适用于VLC.
Streaming将标头写入流:
if (stream != null)
{
try
{
// send the header
stream.write(("HTTP/1.0 200 OK\r\n" +
"Server: iRecon\r\n" +
"Connection: close\r\n" +
"Max-Age: 0\r\n" +
"Expires: 0\r\n" +
"Cache-Control: no-cache, private\r\n" +
"Pragma: no-cache\r\n" +
"Content-Type: multipart/x-mixed-replace; " …Run Code Online (Sandbox Code Playgroud) 这个问题的目标是试图弄清楚如何使用pyglet播放流式音频.第一个是确保你能够使用pyglet播放mp3文件,这就是第一个片段的目的:
import sys
import inspect
import requests
import pyglet
from pyglet.media import *
pyglet.lib.load_library('avbin')
pyglet.have_avbin = True
def url_to_filename(url):
return url.split('/')[-1]
def download_file(url, filename=None):
filename = filename or url_to_filename(url)
with open(filename, "wb") as f:
print("Downloading %s" % filename)
response = requests.get(url, stream=True)
total_length = response.headers.get('content-length')
if total_length is None:
f.write(response.content)
else:
dl = 0
total_length = int(total_length)
for data in response.iter_content(chunk_size=4096):
dl += len(data)
f.write(data)
done = int(50 * dl / total_length)
sys.stdout.write("\r[%s%s]" % ('=' * done, ' ' * …Run Code Online (Sandbox Code Playgroud) 我有以下代码下载视频内容:
WebRequest wreq = (HttpWebRequest)WebRequest.Create(url);
using (HttpWebResponse wresp = (HttpWebResponse)wreq.GetResponse())
using (Stream mystream = wresp.GetResponseStream())
{
using (BinaryReader reader = new BinaryReader(mystream))
{
int length = Convert.ToInt32(wresp.ContentLength);
byte[] buffer = new byte[length];
buffer = reader.ReadBytes(length);
Response.Clear();
Response.Buffer = false;
Response.ContentType = "video/mp4";
//Response.BinaryWrite(buffer);
Response.OutputStream.Write(buffer, 0, buffer.Length);
Response.End();
}
}
Run Code Online (Sandbox Code Playgroud)
但问题是整个文件在播放之前下载.如何进行流式处理和播放,因为它仍在下载?或者由客户/接收器应用程序来管理?
就在最近,我开始研究WCF流的棘手问题,如果客户端在发送到服务器之间等待的时间超过130秒,则会产生CommunicationException.
以下是完整的例外情况:
System.ServiceModel.CommunicationException was unhandled by user code
HResult=-2146233087
Message=The socket connection was aborted. This could be caused by an error processing your message or a receive timeout being exceeded by the remote host, or an underlying network resource issue. Local socket timeout was '23:59:59.9110000'.
Source=mscorlib
StackTrace:
Server stack trace:
at System.ServiceModel.Channels.HttpOutput.WebRequestHttpOutput.WebRequestOutputStream.Write(Byte[] buffer, Int32 offset, Int32 count)
at System.IO.BufferedStream.Write(Byte[] array, Int32 offset, Int32 count)
at System.Xml.XmlStreamNodeWriter.FlushBuffer()
at System.Xml.XmlStreamNodeWriter.GetBuffer(Int32 count, Int32& offset)
at System.Xml.XmlUTF8NodeWriter.InternalWriteBase64Text(Byte[] buffer, Int32 offset, Int32 count)
at System.Xml.XmlBaseWriter.WriteBase64(Byte[] …Run Code Online (Sandbox Code Playgroud) 我正在用Symfony2编写功能测试.
我有一个控制器调用一个getImage()流式传输图像文件的函数,如下所示:
public function getImage($filePath)
$response = new StreamedResponse();
$response->headers->set('Content-Type', 'image/png');
$response->setCallback(function () use ($filePath) {
$bytes = @readfile(filePath);
if ($bytes === false || $bytes <= 0)
throw new NotFoundHttpException();
});
return $response;
}
Run Code Online (Sandbox Code Playgroud)
在功能测试中,我尝试使用Symfony测试客户端请求内容,如下所示:
$client = static::createClient();
$client->request('GET', $url);
$content = $client->getResponse()->getContent();
Run Code Online (Sandbox Code Playgroud)
问题是它$content是空的,我猜是因为客户端收到HTTP头后立即生成响应,而不等待传递数据流.
有没有办法捕获流式响应的内容,同时仍然使用$client->request()(甚至一些其他功能)将请求发送到服务器?