小编Goo*_*oey的帖子

Android - 将流相机作为RTMP流

我想从Android设备捕获相机流并将其流式传输到具有RTMP的服务器(服务器不受我的控制).我还没有想出如何从相机本身创建数据流,但这是为了以后的关注.

目前存在两个问题:我希望支持API 9+,并且Android不支持RTMP.

我已经浏览了一下,发现这个SO 转换视频输入流到RTMPhttps://github.com/yixia/VitamioBundle.前者提出了一个几乎没有文档的库.后者可能支持它(?),但它需要API 14+.

是否有适当的示例或库,支持来自Android设备的RTMP流?我还读过有关转换RTSP或FFMPEG的内容,如果这是一种可行的方式,那么我想它也足够了.

编辑1:

我找到了这个库(它与上面提到的有很多相似之处),并尝试使用它.我在Android Studio中导入它并编写了一些代码,但它似乎在内部崩溃并出现java.lang.NoClassDefFoundError RTSP Codec Factory错误.显然,这在Android上运行得不是很好.

另外,我曾多次遇到过Adobe air.我不想在Action Script 3(AS3)中编写代码,因为这个库只是本机应用程序的一个(小)部分.如果Adobe Air有一个我不知道的库,那么如果可能,我很乐意将它集成.

android rtmp video-streaming

8
推荐指数
1
解决办法
3万
查看次数

Android ImageReader获得NV21格式?

我没有成像或图形的背景,所以请耐心等我:)

我在我的一个项目中使用JavaCV.在这些例子中,Frame构造了一个具有一定大小的缓冲区的a .

public void onPreviewFrame(byte[] data, Camera camera)在Android中使用该函数时,data如果将声明声明Framenew Frame(frameWidth, frameHeight, Frame.DEPTH_UBYTE, 2);where frameWidthframeHeight声明为,则复制此字节数组没有问题

Camera.Size previewSize = cameraParam.getPreviewSize();
int frameWidth = previewSize.width;
int frameHeight = previewSize.height;
Run Code Online (Sandbox Code Playgroud)

最近,Android添加了一种捕获屏幕的方法.当然,我想抓住那些图像并将它们转换为Frames.我修改了Google的示例代码以使用ImageReader.

ImageReader被构造为ImageReader.newInstance(DISPLAY_WIDTH, DISPLAY_HEIGHT, PixelFormat.RGBA_8888, 2);.所以目前它使用RGBA_8888像素格式.我使用以下代码将字节复制到Frame,实例化为new Frame(DISPLAY_WIDTH, DISPLAY_HEIGHT, Frame.DEPTH_UBYTE, 2);:

ByteBuffer buffer = mImage.getPlanes()[0].getBuffer();
byte[] bytes = new byte[buffer.remaining()];
buffer.get(bytes);
mImage.close();
((ByteBuffer) frame.image[0].position(0)).put(bytes); …
Run Code Online (Sandbox Code Playgroud)

android imaging image android-mediaprojection

8
推荐指数
1
解决办法
7966
查看次数

没有调用Smack消息监听器和连接不稳定

我有以下代码应该监听消息:

ChatManager chatmanager = ChatManager.getInstanceFor(xmppManager.getConnection());

chat = chatmanager.createChat(otherJabberId);

chat.addMessageListener(new ChatMessageListener() {
    @Override
    public void processMessage(Chat chat, Message message) {
        Log.e("message trigger", message.getBody());
    }
}
Run Code Online (Sandbox Code Playgroud)

但我的日志永远不会触发.

但是,setDebuggerEnabled(true)我的代码中有以下内容:10-31 15:41:51.264 28889-28993/com.lfdversluis.buurapp D/SMACK: RECV (0): <message to="test@app.buur.nu/Smack" type="chat" id="53" from="testje@app.buur.nu/Gajim"><body>test</body><request xmlns="urn:xmpp:receipts"/><thread>277945c1-772a-4d4b-8e1a-274153cfb8a6</thread></message>

所以收到了消息.我检查过,otherJabberId变量是正确的.只是听众没有触发.什么更奇怪,有时它只是工作正常.

我遇到的另一个问题是无法发送消息.

在这里,我有如上所述的聊天设置,并使用以下代码发送消息:

try {  
    chat.sendMessage(text.trim());  
    DataBaseManager db = new DataBaseManager(ChatActivity.this);  
    db.addMessageToDB(model);  

    addMessageToScreen(newMessage);  

} catch (SmackException.NotConnectedException ignored) {  
    XMPPManager manager = XMPPManager.getInstance();  
    manager.reconnect(); // Maybe we need to reconnect due to an interrupt and retry..  
    try {  
        chat.sendMessage(text.trim()); …
Run Code Online (Sandbox Code Playgroud)

android xmpp listener smack

6
推荐指数
1
解决办法
1587
查看次数

两列之间的MySQL日期时间

我在事件表中有两列(均为日期时间)startDate和endDate。我正在使用date()php 的功能检索当天。

例如,这导致2013-03-12。

现在,有三种事件结合今天发生的日期的可能性:

  1. 活动开始,并在这一天结束
  2. 一个活动开始较早,今天结束
  3. 活动从今天开始但在将来结束(> = 2013-03-13)

现在,由于我不习惯使用日期,因此我想将所有这些分解为单独的查询。我从第一个查询开始,但是在那个查询上我已经失败了。我尝试了以下方法:

SELECT * FROM events WHERE (startDate= '2013-03-12' AND endDate= '2013-03-12')
Run Code Online (Sandbox Code Playgroud)

以及:

SELECT * FROM events WHERE NOT (startDate < '2013-03-12' OR endDate > '2013-03-12')
Run Code Online (Sandbox Code Playgroud)

我尝试使用DATE()aswell并设置日期格式,例如“ 2013-03-12%”。

我不知道为什么它不起作用,但我确定12日至少发生1个事件。任何帮助表示赞赏。

mysql sql datetime range

5
推荐指数
1
解决办法
2万
查看次数

Android插页式广告添加测试设备?

您可以轻松添加带有横幅广告的测试设备,这样您就不会因意外点击而被禁止.但是我找不到如何将测试设备添加到插页式广告中.我假设如果你不小心点击它们,你也可以被禁止.

您可以为这些添加测试设备吗?如果是,如何添加?我无法在官方谷歌指南上找到它,也无法在SA上找到它.如何获取测试广告横幅并测试为adMob工作的插页式广告?确实看起来很有希望,但没有关于如何添加测试设备的答案.

android ads interstitial

5
推荐指数
1
解决办法
1万
查看次数

d3可视化数据的最佳实践?

我正在开发一个项目,使用d3在散点图中可视化数据点.由于它是一个Web应用程序,该区域是有限的,并且许多点重叠.总共有20k点,我允许用户使用画笔(及其范围)放大区域,但即使放大,仍然存在大量的点重叠.这种情况的一个例子:

在此输入图像描述

什么是仍然可视化基础点,增强观点或观点的好方法?我在考虑使用透明度,但我不知道是否会这样做.

值得注意的是,所有点都代表基因,因此在表示方面聚类它们可能不是很合理.

javascript visualization data-visualization d3.js

5
推荐指数
1
解决办法
738
查看次数

多对多关系SQL查询

我正在尝试创建一个可以在多对多关系数据库中获取结果的查询。
到目前为止,我得到了以下内容:
一张带有歌曲的表,一张带有标签的表和一个“链接”表,因为一首歌曲可以有多个标签,而一个标签可以属于多首歌曲。

它看起来像这样:

Songs       Link        Tags
=======     =====       =========
Sid          Sid        Tid
Songname     Tid        Tagname
Run Code Online (Sandbox Code Playgroud)

现在假设您有 3 首歌曲 AB 和 C 以及 3 个标签:X、Y 和 Z。
歌曲 A 有标签 Y,歌曲 B 有标签 Z,歌曲 C 有标签 X 和 Z。

我设法创建了一个查询以仅通过一个标签获取一首歌曲(例如 Z 给出 B 和 C)。
但是,当输入多个标签(例如,输入到(搜索)字段中)时,我如何创建一个搜索歌曲的查询。

我已经搜索过几次命令 INTERSECT 和 INNER JOIN 出现了,但我还没有能够成功地创建一个查询。

任何帮助表示赞赏!

mysql

3
推荐指数
1
解决办法
3095
查看次数

D3放大画笔范围

我正在使用应该使用给定数据创建散点图的Web工具。由于我不熟悉可视化(也不是JavaScript专家),所以我决定使用D3。

在学习了教程之后,观察示例并尝试一些东西,我得到了一个与笔刷选择相关的散点图(尚不执行任何操作)。现在,由于目标正在绘制基因,因此它们中的许多在x和y坐标上都非常接近。所以我想实现的东西像这样的,但在X和Y方向上。基本上放大刷过的部分。

到目前为止,我无法创建此行为,这时我的轴确实发生了变化,但是不再显示值并且没有缩放发生。您可以在我的玩具子域中看到它。我不确定哪里出了问题,因此可以提供任何帮助。

玩具域上使用的javascript:

// General variables

var svg, width, height;
var padding = 30;

var dataset = [
              [ 5,     20 ],
              [ 480,   90 ],
              [ 250,   50 ],
              [ 100,   33 ],
              [ 330,   95 ],
              [ 410,   12 ],
              [ 475,   44 ],
              [ 25,    67 ],
              [ 85,    21 ],
              [ 220,   88 ]
          ];

function drawGraph(){
    scatterplot_area_size = $("#scatterplot").width();
    width = scatterplot_area_size;
    height = scatterplot_area_size * 0.75;

    console.log(width);

    // Retrieve …
Run Code Online (Sandbox Code Playgroud)

javascript d3.js

3
推荐指数
1
解决办法
939
查看次数

Android gradle基于架构加载和编译库

我使用以下语句在我的android应用程序中包含了opencv:

compile group: 'org.bytedeco', name: 'javacv', version: '0.11'
compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '2.4.11-0.11', classifier: 'android-arm'
compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '2.4.11-0.11', classifier: 'android-x86'
compile group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg', version: '2.6.1-0.11', classifier: 'android-arm'
compile group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg', version: '2.6.1-0.11', classifier: 'android-x86'
Run Code Online (Sandbox Code Playgroud)

现在仅使用了四分之二,这既浪费空间,又可能浪费速度。有没有办法只加载/编译属于体系结构的库?我已经阅读了针对不同处理器体系结构的Gradle android build,但是该库使用libs文件夹,因此具有自己的include。我有所有通过gradle导入的库。

android abi gradle

3
推荐指数
1
解决办法
1119
查看次数

wxPython 检查c++部分是否被删除

我正在处理一个项目,其中一个函数wx.pyDeadObject Error由于任务延迟而抛出 a 。

我在 wx 中读到过,您可以通过运行来检查 c++ 对象是否仍然存在if self:,但是这在 wxPython 3.0.2 中不再有效。使用 wx 3。

我已将函数修改为以下内容:

def SetData(self, delayedResult):
    if not self or not self.list:
        return
    data = []
    torrents = delayedResult.get()

    for torrent in torrents:
        data.append((torrent.infohash, [torrent.name], torrent, ThumbnailListItemNoTorrent))

    self_exist = True
    list_exists = True

    if not self:
        self_exist = False
    if not self.list:
        list_exists = False

    try:
        self.list.SetData(data)
        self.list.SetupScrolling()
    except wx.PyDeadObjectError:
        print "Self existed: %s and self.list existed: %s" % (self_exist, list_exists)
Run Code Online (Sandbox Code Playgroud)

它已经通过了第一个 …

python wxwidgets wxpython python-2.7

3
推荐指数
1
解决办法
572
查看次数

功能未立即执行

我有一个函数showLoading(),通过附加一个类来显示一个微调器:

function showLoading(){
    //console.log("show loading");
    loading = true;
    $("body").addClass("loading");
}
Run Code Online (Sandbox Code Playgroud)

我称之为:

Function heavyCrunch(){
    showLoading();

    <heavy crunching>

    hideLoading();
}
Run Code Online (Sandbox Code Playgroud)

现在每当我在一个需要> 1秒的重载之前调用函数时,它应该立即显示微调器,但它不会.事实上,它根本没有显示出来.每当我点击一个触发该heavyCrunch()功能的按钮时,它只会冻结一秒或2,然后立即显示结果.旋转器永远不会显示.为什么会这样?

我应该在.after回调中调用函数吗?

javascript jquery

1
推荐指数
1
解决办法
55
查看次数