我的java应用程序使用看起来或多或少的代码在系统托盘上显示其图标:
Toolkit mainToolkit = Toolkit.getDefaultToolkit();
SystemTray mainTray = SystemTray.getSystemTray();
Image trayIconImage = mainToolkit.createImage(getClass().getResource(resourcePath));
TrayIcon mainTrayIcon = new TrayIcon(trayIconImage);
mainTray.add(mainTrayIcon);
Run Code Online (Sandbox Code Playgroud)
有时我会改变这样的图标:
Image newImage = mainToolkit.createImage(getClass().getResource(otherPath));
mainTrayIcon.setImage(newImage);
Run Code Online (Sandbox Code Playgroud)
我的应用程序有时需要显示一些通知(使用来自托盘图标的气球消息):
mainTrayIcon.displayMessage(someCaption, msg, TrayIcon.MessageType.NONE);
Run Code Online (Sandbox Code Playgroud)
所有这些代码实际上都是以某种方式简化,但很好地掌握了这个功能.
所以Windows 7上的一切都很好.但事实证明,在Windows 10上,它的显示方式不同.在通知上,左侧显示一个图标.它通常是我的应用程序的当前托盘图标,但有时它只是空白:
在上面的红色圆圈(在通知上)是有时出现的空白图标,而不是我的应用程序的图标(在系统的托盘上的红色小圈中).我不知道它为什么会发生.我所知道的只有当应用程序的托盘图标和通知消息在第一次通知(总是正确显示其图标)之前发生变化时才会发生这种情况.如果显示通知,则手动关闭淡出/然后应用程序的托盘图标和通知更改,下一个通知(使用刚设置的新消息)将正确显示应用程序的图标.
我尝试用原始H264视频数据创建碎片化的MP4,这样我就可以在互联网浏览器的播放器中播放它了.我的目标是创建实时流媒体系统,媒体服务器将片段化的MP4片段发送到浏览器.服务器将缓冲来自RaspberryPi摄像头的输入数据,该摄像头将视频作为H264帧发送.然后它将复用该视频数据并使其可供客户端使用.浏览器将使用Media Source Extensions播放媒体数据(由服务器复制并通过websocket发送).
出于测试目的,我编写了以下代码片段(使用我在intenet中找到的许多示例):
使用avcodec的C++应用程序,它将原始H264视频复用到碎片MP4并将其保存到文件中:
#define READBUFSIZE 4096
#define IOBUFSIZE 4096
#define ERRMSGSIZE 128
#include <cstdint>
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
extern "C"
{
#include <libavformat/avformat.h>
#include <libavutil/error.h>
#include <libavutil/opt.h>
}
enum NalType : uint8_t
{
//NALs containing stream metadata
SEQ_PARAM_SET = 0x7,
PIC_PARAM_SET = 0x8
};
std::vector<uint8_t> outputData;
int mediaMuxCallback(void *opaque, uint8_t *buf, int bufSize)
{
outputData.insert(outputData.end(), buf, buf + bufSize);
return bufSize;
}
std::string getAvErrorString(int errNr)
{
char errMsg[ERRMSGSIZE];
av_strerror(errNr, errMsg, ERRMSGSIZE);
return std::string(errMsg);
} …Run Code Online (Sandbox Code Playgroud) 我正在为我的网站创建一些聊天框,我不能让垂直滚动条出现在边框之外.这就是我得到的:

我想要的只是滚动条出现在右边的边框之外.它现在不是很漂亮,是吗?
thix框的主要HTML代码(带有一条消息,用于打开聊天框)如下所示:
<div id="sb_body">
<div id="sb_messages_set">
<div class="sb_message">
<div class="sb_message_header">
<div class="sb_message_author">PookyFan</div>
<div class="sb_message_hour">12:11</div>
</div>
<div class="sb_message_content">test</div>
</div>
</div>
<!-- Some other chatbox's elements -->
</div>
Run Code Online (Sandbox Code Playgroud)
我的CSS代码如下所示:
div#sb_messages_set
{
border: 2px solid black;
border-radius: 10px;
background-color: #0080E0;
overflow: auto;
height: 300px;
}
div.sb_message
{
margin: 2px 4px 5px 4px;
border-bottom-style: dashed;
border-width: 1px;
border-color: black;
}
div.sb_message_header
{
clear: both;
display: block;
margin-bottom: 3px;
}
div.sb_message_author
{
display: inline;
text-align: left;
font-weight: bold;
}
div.sb_message_hour
{
display: inline;
float: …Run Code Online (Sandbox Code Playgroud) 考虑以下代码:
int totalLength = 0;
int partLength = 0;
for(; totalLength < SOME_CONST; totalLength += partLength, partLength = 0)
{
//partLength may be increased here
}
Run Code Online (Sandbox Code Playgroud)
在这种特殊情况下,我可以假设partLength将被设置为0,它将被添加到totalLength(因此,如果partLength将在循环体中增加,我将不会在循环结束时将totalLength添加0) ?我读过有关c ++序列等的内容,但没有找到任何明确的答案.
根据MSDN:
如果nWidthSrc和nWidthDest参数的符号或者nHeightSrc和nHeightDest参数不同,StretchBlt将创建位图的镜像.
所以我尝试创建颠倒的图像.我有一个类看起来像这样:
class Picture
{
private:
HBITMAP bmp; //Bitmap
HDC pdc; //Device context
short int w; //Weidth of bitmap
short int h; //Heighth of bitmap
public:
short int x;
short int y;
void draw(HDC);
void upside_down();
}
Run Code Online (Sandbox Code Playgroud)
我有这个方法:
void Picture::upside_down()
{
HDC dc = CreateCompatibleDC(pdc);
HBITMAP bmap = CreateCompatibleBitmap(pdc, w, h);
SelectObject(dc, bmap);
BitBlt(dc, 0, 0, w, h, pdc, 0, 0, SRCCOPY);
StretchBlt(pdc, 0, 0, w, h, dc, 0, 0, w, -h, SRCCOPY);
DeleteDC(dc);
DeleteObject(bmap);
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用,没有任何反应.我想知道它是否具有DC兼容性,我总是在理解其背后的逻辑时遇到问题.
那么,我应该怎么做才能让我的位图翻转?
我使用 ffmpeg 的 avcodec 从我的 C++ 应用程序中的音乐文件中检索原始音频样本。对于我测试的文件,这些文件样本的字节序似乎是小字节序,但我想知道对于我尝试解码的所有文件是否总是如此(即来自 ffmpeg 的实现或至少它的体系结构 -具体是因为我的计算机的体系结构使用小字节序)。如果没有,我认为这将取决于特定文件的编码格式。在这种情况下,我如何检查我正在解码的每个文件适用哪种字节序?我在文档中找不到任何相关信息。
c++ ×4
ffmpeg ×2
audio ×1
bitmap ×1
css ×1
decoding ×1
fmp4 ×1
gdi ×1
h.264 ×1
html ×1
java ×1
libavcodec ×1
libavformat ×1
scrollbar ×1
stretchblt ×1
system-tray ×1
trayicon ×1
winapi ×1
windows-10 ×1