小编Ore*_*ren的帖子

Android - 如何获取AudioManager/AudioSystem参数列表

AudioManager有一个setParameters方法,它接受字符串表示中的键值对("parameter_name = parameter_value").
在内部,它称为原生AudioSystem.setParameters.
获取参数值的唯一方法是,如果你知道它的名字,可以调用AudioManager.getParameters调用`AudioSystem'中相应的本机方法的方法.

有没有办法(使用反射或其他技术)获得支持的参数列表(当然结果将取决于它被调用的设备,因为它是特定于平台的)?

android android-audiomanager

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

在c#中替换图像中的颜色

在不影响纹理的情况下,C#替换图像某些部分的颜色的方式是什么?

你可以在这里看到结果的好例子
谢谢

c# image-processing

12
推荐指数
4
解决办法
3万
查看次数

WPF 应用程序和 DirectX 光栅化器中的访问冲突异常

我有一个 WPF 应用程序,经过一些琐碎的操作(打开和关闭某些应用程序控件)后崩溃了。当我打开故障转储文件时,我看到异常是

FAULTING_IP: 
rgb9rast!D3D8RGBRast::CRGBContext::PackGenVertex+b4
000007fe`f7625b88 428b0c10        mov     ecx,dword ptr [rax+r10]

EXCEPTION_RECORD:  ffffffffffffffff -- (.exr 0xffffffffffffffff)
ExceptionAddress: 000007fef7625b88 (rgb9rast!D3D8RGBRast::CRGBContext::PackGenVertex+0x00000000000000b4)
ExceptionCode: c0000005 (Access violation)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 0000000000000000
Parameter[1]: 000000009f011620
Attempt to read from address 000000009f011620
Run Code Online (Sandbox Code Playgroud)

这表明 Directx 光栅化中的访问冲突错误和错误的线程堆栈跟踪是(我省略了调用地址)

rgb9rast!D3D8RGBRast::CRGBContext::PackGenVertex+0xb4
rgb9rast!D3D8RGBRast::CRGBContext::DoDrawOneGenIndexedPrimitive+0x72b
rgb9rast!D3D8RGBRast::CRGBContext::DP2DrawIndexedPrimitive2+0x1d4
rgb9rast!DX8SDDIFW::SDP2MFnParser::ParseDP2<DX8SDDIFW::CStdDrawPrimitives2<D3D8RGBRast::CRGBContext,D3D8RGBRast::CRGBStateSet,D3D8RGBRast::static_hash_map<unsigned long,D3D8RGBRast::CRGBStateSet,32,D3D8RGBRast::hash<unsigned long>,std::equal_to<unsigned long>,D3D8RGBRast::allocator<std::pair<unsigned long const ,D3D8RGBRast::CRGBStateSet> > >,DX8SDDIFW::CDP2DataWrap<D3D8RGBRast::SDP2NextCmdExt>,D3D8RGBRast::block<long (__cdecl D3D8RGBRast::CRGBContext::*)(DX8SDDIFW::CDP2DataWrap<D3D8RGBRast::SDP2NextCmdExt> & __ptr64,_D3DHAL_DP2COMMAND const * __ptr64,void const * __ptr64) __ptr64,89>,D3D8RGBRast::block<long (__cdecl D3D8RGBRast::CRGBContext::*)(_D3DHAL_DP2COMMAND const * __ptr64,void * __ptr64) __ptr64,89> >::TMFnCaller,D3D8RGBRast::block<long (__cdecl D3D8RGBRast::CRGBContext::*)(DX8SDDIFW::CDP2DataWrap<D3D8RGBRast::SDP2NextCmdExt> & __ptr64,_D3DHAL_DP2COMMAND const * __ptr64,void const …
Run Code Online (Sandbox Code Playgroud)

.net c# directx wpf

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

android在特定帖子上打开facebook app

我正在开发一个从用户流(从流表)中提取帖子并显示它们的应用程序.
streams post_id字段以以下格式返回:{uid} _ {postid},例如:

100001147753406_320951738012113
Run Code Online (Sandbox Code Playgroud)

如何打开facebook应用程序来显示这样的帖子?

在网络浏览器中,这可以使用网址:www.facebook.com/uid/posts/postid完成,根据搜索,这应该通过将Intent的uri设置为:

fb://post/{postid}?owner={uid}
Run Code Online (Sandbox Code Playgroud)

但是,这并不总是出于意图.

这样做的正确方法是什么?

android facebook android-intent facebook-graph-api

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

SendInput在64位上失败

可能重复:
SendInput和64位

我正在使用.NET代码中的SendInput(PInvoke).
用于在32位操作系统上正常工作的代码,但现在在WIN7上SendInput返回0,最后一个错误设置为57(ERROR_INVALID_PARAMETER).
我无法将代码编译为x86,因为我已加载到64位主机中.此外,我尝试了各种有关结构尺寸和场偏移的解决方案,但都没有.
这些是我的PInvoke导入和类型:

[StructLayout(LayoutKind.Sequential)]
struct KEYBOARD_INPUT
{
    public uint type;
    public ushort vk;
    public ushort scanCode;
    public uint flags;
    public uint time;
    public uint extrainfo;
    public uint padding1;
    public uint padding2;
}

[DllImport("User32.dll", SetLastError=true)]
private static extern uint SendInput(
    uint numberOfInputs, 
   [MarshalAs(UnmanagedType.LPArray, SizeConst = 1)] KEYBOARD_INPUT[] input,
   int structSize);
Run Code Online (Sandbox Code Playgroud)

和代码用法是:

uint result = SendInput(
       (uint)inputs.Count, 
       inputs.ToArray(), 
       Marshal.SizeOf(inputs[0]));
Run Code Online (Sandbox Code Playgroud)

其中inputs数组包含1个KEYBOARD_INPUT结构.
这会产生result = 0,当我检查上一个错误时,我得到的最后一个错误设置为57(ERROR_INVALID_PARAMETER,参数不正确).

有没有办法让这个工作在WIN7 64位操作系统的64位主机下工作?这适用于XP ...

谢谢

.net c# 64-bit pinvoke windows-7

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

使用ALSA/CAF进行Android通话录音

我正在为我的root手机写一个小型通话记录库.
我在某些应用程序中看到,录制是通过ALSA或CAF在root手机上完成的.
我找不到任何关于如何使用ALSA或CAF进行通话录音的示例/教程(甚至用于录音的录音).
我看到tinyAlsa lib项目,但我无法想象如何在Android应用程序中使用它.有人可以告诉我一些关于如何在Android应用程序中集成ALSA或CAF的教程或代码示例吗?

更新 我设法使用JNI调用包装tinyAlsa.但是,像mixer_open(0)这样的调用会返回空指针,而像pcm_open(...)之类的调用会返回一个指针,但是后续调用is_pcm_ready(pcm)总是返回false.
难道我做错了什么?我错过了什么吗?

android alsa caf

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

如何使用 NDK 构建 Alsa Utils

我的目标是使用 Android NDK 将amixer 从alsa-utils-1.0.29编译为我可以在 Android 设备上使用的可执行文件。
我找不到使用 ndk-build 构建它的方法,也找不到有关如何实现此目标的任何文档。

有没有办法做到这一点?

编辑:
我尝试使用本指南在 Ubunto 上交叉编译 alsa-lib 和 alsa-utils ,但结果 amixer 不能在 Android 上运行(说没有这样的文件或目录)。
当我使用 ndk-build amixer 无法编译(一直抱怨未定义的引用)。

编辑 2:
我执行失败的步骤如下:
- 从 alsa 项目站点下载 alsa-lib 和 alsa-utils
- 使用基于此 Android.mk 的 Android.mk编译 alsa-lib - 成功
- 编译 alsa-utils 基于这个 SO 问题:alsa-utils + ndk-build 不起作用
- 起初我经常收到错误消息,说没有构建 amixer.o 的规则。只用硬编码路径替换 $(LOCAL_PATH) 就解决了
- 现在,在编译时 - 虽然 Android.mk 指向所有必需的包含,但我得到了很多未定义的引用错误,例如:“未定义引用'snd_ctl_card_info_sizeof'”

是什么以一种可以在Android上使用的方式构建alsa-utils的方法?

android alsa android-ndk

5
推荐指数
0
解决办法
1838
查看次数