小编JFa*_*Far的帖子

没有root的Android Capture USB Mic Audio

我的Android应用程序针对的是运行Android 4.4.2的非root三星Galaxy Note 2手机.

当我的USB麦克风插入手机时,它显示为/ dev/snd/pcmC1D0c,因此我知道它正在被识别为音频捕获设备.

有没有办法将音频从这个设备捕获到我的应用程序而不需要生根Galaxy Note 2?

  • 我尝试使用所有MediaRecorder.AudioSource选项的AudioRecord,他们都使用手机的内置麦克风.
  • 我没有在Settings/Sound中找到任何选项来更改输入设备.
  • 我调查了三星的专业音频SDK,看起来很有希望,直到我发现我所针对的Galaxy Note 2设备不受此SDK的支持.

如果无法从Java访问它,是否可以使用本机c代码(JNI)来访问现有的tinyALSA驱动程序并捕获音频而无需为手机生根?

我知道我可以使用libusb直接捕获音频数据包,但我希望更清洁/更简单的方式,因为手机已经识别我的音频输入设备.

android samsung-mobile

6
推荐指数
0
解决办法
946
查看次数

FromBluetoothAddressAsync永远不会在WPF应用程序中的Windows 10 Creators Update上返回

我升级到Windows 10,版本1703 build 15063(Creators Update)正式发布.当我在WPF桌面应用程序中运行以下代码时,BluetoothLEDevice.FromBluetoothAddressAsync永远不会返回.

在我的Windows 10更新之前(即之前的1607版本14393),此代码工作正常.如果在新的Win 10 1703中作为UWP运行,此代码也可以正常工作.

BluetoothLEAdvertisementWatcher BleWatcher = null;

private void Button_Click(object sender, RoutedEventArgs e)
{
     BleWatcher = new BluetoothLEAdvertisementWatcher
     {
          ScanningMode = BluetoothLEScanningMode.Active
     };
     BleWatcher.Received += Watcher_Received;
     BleWatcher.Start();
}

private async void Watcher_Received(BluetoothLEAdvertisementWatcher sender, 
                                    BluetoothLEAdvertisementReceivedEventArgs args)
{
         var device = await BluetoothLEDevice.FromBluetoothAddressAsync(args.BluetoothAddress);
         // never continues beyond this point above with my BTLE devices that previously worked 
}
Run Code Online (Sandbox Code Playgroud)

我按照/sf/answers/2613467601/中的说明设置我的WPF桌面应用程序以使用UWP API.

问题更严重,因为我的现有WPF应用程序将在客户开始升级到Win 10 1703时被破坏,因为我现有的exe不再有效.

是否有其他人在(非UWP)桌面exe中使用Windows 10 1703更新遇到此问题?

经过进一步的实验,我确实发现如果我将可选的BluetoothAddressType.Public第二个参数添加到FromBluetoothAddressAsync调用中,则返回该函数,但返回的设备为null.

var device = await BluetoothLEDevice.FromBluetoothAddressAsync(args.BluetoothAddress, BluetoothAddressType.Public);
Run Code Online (Sandbox Code Playgroud)

c# bluetooth-lowenergy windows-10

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

UIApplicationDelegate openURL的SourceApplication参数应该是否为零?

我的iOS应用程序通过UIApplicationDelegate的openURL方法从其他iOS应用程序接收文件.我在我的应用程序中使用NSString*SourceApplication参数来跟踪将文件发送到我的应用程序的应用程序的名称.

在iOS7中,SourceApplication参数始终使用"getdropbox.dropbox","google.Drive"或"evernote.iPhone.evernote"等字符串填充.

在我(以及我的应用程序的其他几个用户)升级到iOS8之后,SourceApplication参数似乎总是为零.url参数使用发送到我的应用程序的文件的URL正确填充.似乎只有SourceApplication参数的行为可能已经改变了iOS8.

还有其他人在iOS8上看到这个吗?在iOS8中我发现了一些我不知道的变化吗?这是iOS错误吗?

OpenURL的UIApplicationDelegate协议参考

objective-c ios

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