我正在为Maemo/MeeGo开发移动应用程序,Maemo使用PulseAudio.我想播放一个mp3给来电者(并且在做这个时取消麦克风,而不是听来电者,一切都应该在后台完成),要做到这一点,我必须重定向一定的音频输出(如果不可能,全部)应用程序,将其伪造为输入并使手机应用程序使用它.
在我的Ubuntu PC上,我用pavucontrol做到了.我创建了一个NULL接收器,然后:
Audio Output (from Amarok) --> to NULL Output
Skype Input <-- NULL Output
Skype Output --> NULL
Run Code Online (Sandbox Code Playgroud)
它起作用了,Amarok播放了音乐,它正在播放到Skype,没有播放给我,我没有听到任何有关所有过程的信息.问题是; a)Maemo没有pavucontrol.b)即使它确实(或者我打包它)也没有任何好处,因为它是一个唯一的GUI应用程序,我必须在背景上完成所有这些东西,没有任何用户输入.(意思是:CLI或API)
在Freenode #pulseaudio上被问到这个问题时,一位乐于助人的人说"它可以通过pactl或pacmd完成,你想要的命令是move-sink-input和move-source-output,但你需要知道设备和流索引".所以看起来pavucontrol只是一个GUI,pactl和pacmd是真正的交易,最重要的是,它们是CLI应用程序.
我真的很感谢他,但我对"pactl","pacmd","move-sink-input"或"device/stream indices"一无所知,所以我需要一个非常简化的手册页,或者类似的应用程序,一个单行命令(两个?整个命令页?,只是给我们他们!^^)或有足够耐心的人向我解释这些东西.
我有一个Java程序,它使用附加到jPanel的BufferedImage来显示我从字节数组中读取的一些图像数据.我一次将一行Image放入字节数组,获取图像的WriteableRaster,调用栅格的setDataElements()方法,然后调用BufferedImage的setData以获取新数据.
在C++中执行此操作的等效方法是什么?
编辑:我有Qt,并认为我可能会尝试使用它来构建我的UI
我在软件中遇到了一个奇怪的崩溃,我在调试它时遇到了很多麻烦,因此我正在寻求如何解决它的建议.
崩溃是读取NULL指针的访问冲突:
$ 00CF0041的第一次机会异常.异常类$ C0000005,消息'访问冲突位于0x00cf0041:读取地址0x00000000'.
它只发生'有时' - 我还没有设法找出任何押韵或理由,但是,当时 - 并且只在主线程中.当它发生时,调用堆栈包含一个不正确的条目:
对于主线程,它应该显示一个充满其他项目的大堆栈.
此时,所有其他线程都处于非活动状态(主要是坐在WaitForSingleObject
或类似的功能.)我只看到这个崩溃发生在主线程中.它始终具有一个条目的相同调用堆栈,在同一地址的相同方法中.此方法可能相关也可能不相关 - 我们在应用程序中使用VCL.不过,我的赌注是,某些东西(可能是很久以前)正在破坏堆栈,而崩溃的地址实际上是随机的.请注意,它在几个版本中的地址相同 - 但它可能不是真正随机的.
这是我尝试过的:
我的问题:
1.如何找到导致崩溃的代码?我怎么做相当于走回堆栈?
2.对于如何追踪此次崩溃的原因,您有什么一般性的建议?
我正在使用Embarcadero RAD Studio 2010(该项目主要包含C++ Builder代码和少量Delphi.)
编辑:我想我应该添加实际导致这个的东西.有一个线程调用ReadDirectoryChangesW
然后,使用GetOverlappedResult
,等待事件继续并对更改执行某些操作.事件也发出信号,以便在设置状态标志后终止线程.问题是当线程退出时它从未调用过CancelIO
.因此,Windows仍在跟踪更改,并且可能仍然在目录更改时写入缓冲区,即使缓冲区,重叠的结构和事件不再存在(也没有创建它们的线程上下文.)CancelIO
调用时,没有更多的崩溃.
有许多类似的问题,但没有一个答案出现在现场 - 所以请耐心等待.
我正在努力学习使用Python的OOP,但我一直遇到错误(比如这个),这让我觉得这一切都没有意义,只是使用方法会更容易.
这是我的代码:
Run Code Online (Sandbox Code Playgroud)class TheGUI(wx.Frame): def __init__(self, title, size): wx.Frame.__init__(self, None, 1, title, size=size) # The GUI is made ... textbox.TextCtrl(panel1, 1, pos=(67,7), size=(150, 20)) button1.Bind(wx.EVT_BUTTON, self.button1Click) self.Show(True) def button1Click(self, event): #It needs to do the LoadThread function! class WebParser: def LoadThread(self, thread_id): #It needs to get the contents of textbox! TheGUI = TheGUI("Text RPG", (500,500)) TheParser = WebParser TheApp.MainLoop()
所以我遇到的问题是GUI类需要使用WebParser类中的函数,而WebParser类需要从GUI类中存在的文本框中获取文本.
我知道我可以通过将对象作为参数传递来做到这一点,但这似乎完全没有意义,必须有一种更合乎逻辑的方法来做到这一点,不使用类似乎毫无意义?
提前致谢!
我正在开发facebook/myspace内容共享按钮.Facebook链接将您带到我网站上的URL,但我需要将其他参数传递给我的URL以及传递给Facebook的参数.这是我的例子:
http://www.facebook.com/share.php?t=MyCompany&u=http://foobar.com/test7.php?Share=161&FbShare=Facebook28
Run Code Online (Sandbox Code Playgroud)
我是否需要在"u"参数内转义某些内容?
嗨大家我从服务器试试时遇到上述错误(在服务器上部署了相同的代码).但是,当我尝试使用本地计算机中的相同代码时,它并没有给出错误.
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
Run Code Online (Sandbox Code Playgroud)
任何想法的人可能是错的?
我有一个权限字符串定义如下:
public final static String AUTHORITY = "dsndata.sds2mobile.jobprovider";
Run Code Online (Sandbox Code Playgroud)
随后是UriMatcher的版本:
uriMatcher.addURI(JobMetaData.AUTHORITY, "/JobNames/*",
JOBNAME_SINGLE_URI);
Run Code Online (Sandbox Code Playgroud)
传递给交换机的uri是:
content://dsndata.sds2mobile.jobprovider/JobNames/test
Run Code Online (Sandbox Code Playgroud)
这会通过交换机而下降并达到默认值(抛出IllegalArgumentException).
我错过了什么吗?我搜索过,找不到任何会导致错配的因素.
我看到的用于撤消git的问题与我的略有不同.
这就是我所做的:
目录中有一个项目A
(不是回购).我在其中初始化了一个存储库,添加了文件,但没有提交任何内容.然后我从存储库B中取出,它覆盖了一堆我的分段文件.
我的印象是我可以git reset --hard
用来撤消合并.当然,这只是检查了我刚刚提交的提交的HEAD.
在我做这个拉动之前我应该分支并提交一些东西,后见之明很好.有什么方法可以让我的旧的非分页文件恢复?
我有这个代码:
if (y == a && y == b && y == c && y == d ...)
{
...
}
Run Code Online (Sandbox Code Playgroud)
是否有某种形式的速记,以便我可以像这样重写它?
if(y == (a && b && c && d ...))
{
...
}
Run Code Online (Sandbox Code Playgroud)
功能应该完全相同.我只是在找一些看起来不那么混乱的东西.
编辑很抱歉没有澄清,所有变量都是整数.我在寻找一个较短的方式来确保a
,b
,c
,d
,...一律平等y
.
我有一个像这样的python文件
import urllib2
try:
data = urllib2.urlopen('http:....').read()
except urllib2.HTTPError, e:
print "HTTP error: %d" % e.code
except urllib2.URLError, e:
print "Network error: %s" % e.reason.args[1]
print data1
Run Code Online (Sandbox Code Playgroud)
输出看起来像这样
>>>
15.95
>>>
Run Code Online (Sandbox Code Playgroud)
我需要对data1(或任何替代变量)执行一些操作,这样当我打印data1(或新变量)时,输出没有额外的行.换句话说,我希望它看起来像这样:
>>>
15.95
>>>
Run Code Online (Sandbox Code Playgroud)
任何帮助都会很棒我对python相对较新.我一直在用\ r进行调整,似乎无法让它工作.