我正在尝试使用libvlc创建一个基本的媒体播放器,它将通过dbus进行控制.我正在为python使用gtk和libvlc绑定.该代码基于vlc网站的官方示例
我修改的唯一方法是将dbus接口添加到vlc实例
# Create a single vlc.Instance() to be shared by (possible) multiple players.
instance = vlc.Instance()
print vlc.libvlc_add_intf(instance, "dbus"); // this is what i added. // returns 0 which is ok
Run Code Online (Sandbox Code Playgroud)
一切都很好,该演示工作并播放任何视频文件.但由于某种原因,dbus控制模块不起作用(我不敢相信我只是说可怕的"不起作用"的话):
我已经有了工作客户端dbus代码,它绑定到MPRIS 2接口.我可以控制一个VLC媒体播放器的正常实例 - 工作正常,但上面的例子没有任何反应.dbus控制模块正确加载,因为libvlc_add_intf没有返回错误,我可以在D-Feet(org.mpris.MediaPlayer2.vlc)中看到MPRIS 2服务.即使在D-Feet中,尝试调用dbus vlc对象的任何方法都不会返回错误但没有任何反应.
我是否需要配置其他内容才能使dbus模块控制libvlc播放器?
谢谢
UPDATE
似乎创建vlc实例并设置更高的详细程度,表明收到了DBus调用,但它们对播放器本身没有任何影响.此外,将RC接口添加到实例而不是DBus,也有一些问题:当我从命令行运行示例时,它将我放到RC接口控制台,我可以在其中键入控制命令,但它具有与DBus - 什么都没发生,没有错误,nada,绝对没有.它完全忽略了这些命令.
有什么想法吗?
更新2
以下是使用libvlc创建基本播放器的代码:
from dbus.mainloop.glib import DBusGMainLoop
import gtk
import gobject
import sys
import vlc
from gettext import gettext as _
# Create a single vlc.Instance() to be shared by (possible) …Run Code Online (Sandbox Code Playgroud) 现在有没有人可以找到一些关于 gtk/glib 网络的好的教程/代码示例。我正在尝试编写一个客户端应用程序,该应用程序连接到一个简单的服务器,该服务器使用 Gtk2 回显它接收到的内容,但我不知道如何去做。我想在不使用线程的情况下进行异步读/写,但我不确定什么是最好的方法。API 参考没有太大帮助 - GIOChannel、GIOStream、GSocketClient 等 - 使用哪一个?
回退是在另一个线程中使用阻塞 IO。
我对便携性不感兴趣。
“咆哮:GTk / GLib 开发人员如何期望人们在没有良好文档的情况下使用他们的框架?当我可以使用 QT 来做时,我为什么还要费心。我不想学习更多的 C,这就是我费心的原因!”
在我开始之前,我知道MD5受到了损害(碰撞攻击和散列速度)并且不应该用于哈希密码,但只是为了它,请耐心等待.
我的问题是:使用md5进行散列时的盐位置如何影响散列的"质量"或"强度"?
假设我有以下代码,使用他的电子邮件地址的一部分作为salt哈希用户密码:
<?php
$email = 'user@emailservice.ex';
$password = 'RandomPassWithChars';
$segments = explode('@', $email);
list($saltPart1, $saltPart2, $saltPart3) = $segments;
$hash = md5($saltPart1.$password.$saltPart3.$saltPart2);
?>
Run Code Online (Sandbox Code Playgroud)
该代码是否会减慢蛮力/字典/彩虹表攻击,而不是说:
<?php
$password = 'RandomPass';
$salt = 'RandomSaltStoredInTheDatabase';
$hash = md5($password, $salt);
?>
Run Code Online (Sandbox Code Playgroud)
是否值得尝试像第一个代码中那样加密密码,或者它与第二个代码的结果相同?这有什么好处吗?第一个代码延迟破解密码列表是否比第二种方式更快?
这引出了第二个问题:在数据库中存储盐是否比从用户ID(例如电子邮件地址)获取盐更安全?我看到它的方式,一旦攻击者获得了数据库的副本,该数据库也保留了盐,这使他的生活变得有点轻松,试图破解哈希.但是如果没有储存盐,攻击者也需要创造盐的算法.如果我错了,请纠正我.
我希望我清楚自己.感谢您提前得到任何答案.