Bluetooth support in C# - c#

I am looking for a Bluetooth stack for C# that will allow me to route audio from my phone to my computer, as well as use my microphone on my computer(Windows 7) as an input device for phone calls on my phone. I've looked at 32Feet.NET, but it does not seem to support audio channels. If I am wrong on this, someone please correct me. Otherwise, if there an alternate library for C# that I can use for Bluetooth support?

I'm afraid this probably doesn't really answer your question, but maybe adds some alternative perspective: The issues you're trying to solve seem to be supported by standard Bluetooth audio profiles. As such, there are chances they're provided by the OS's (or other vendor's) Bluetooth stack in a transparent manner, i.e. as audio device like the system's sound card.
If there is no urgent reason for a custom implementation of these Bluetooth profiles, you might be better off looking for .NET methods that configure the audio devices your code uses for audio input/output. You would then use Bluetooth audio in the same way you access other audio devices, basically reducing your code to proxy audio from one audio device (sound card) to another (Bluetooth audio).

Related

c#/.NET - Recording the current audio being played

Is there any way in c#/.net of recording the current audio being played? I've searched a lot on the internet but the only result I could find is recording using a microphone.
I dont want to record using microphone input, I want to record what is being played on the computer when I click a record button.
Thanks
You have two options here:
Hardware loopback device - virtual "Stereo Mix" audio device, which acts as a regular audio capture device and in the same time produces a copy of mixed audio feed played through default audio output device of the system. Since such device shows up as real audio input device, you can use standard APIs, libraries and even exitsing applications to record from such device.
Programmatic access to a virtual loopback device as if it was microphone-like device. API on the background will duplicate played audio content and make it available for reading back as it plays. The good news is that you can access the mixed audio feed for device of your interest.
Both options are described in detail in Loopback Recording article on MSDN and available via standard audio APIs, specifically WASAPI.
For C# development you are likely to use a wrapper like NAudio.
For option 1 you will find quite a few questions on StackOverflow, and for the other option the keyword is AUDCLNT_STREAMFLAGS_LOOPBACK.
The only way to be able to receive data from another application is if the developer provides an access point, normally through some SDK, API, or other means. Without this, there is no way for your application code to receive the bytes from the other application.
The reason a microphone works is because it is receiving the sound output bytes from the application and sending those soundwave bytes back into your PC to render and output the sound. Since you have access to these bytes from the microphone you are able to capture the sound.
See if there is an API or an SDK from the developer of the application you are trying to get sound from.

Developing for BLE windows 8.1

I've found scatterings around the web but no concise answer. Everyone talks about developing BLE for Android and iOS, but how does one develop for Windows in C# (.NET)?
I've found this
http://social.msdn.microsoft.com/Forums/windowsapps/en-US/2f236b71-a6ac-4c42-aef3-723c3691cbf8/how-to-discover-connectdisconnect-and-reconnect-to-bluetooth-low-energy-device-from-windows-81?forum=wdk
I've tried the C# example, but I don't have any devices with health profiles (and I don't know how to set searching for a generic device). I did try modifying the code but it didn't help
I have a sensor tag and also a generic BLE HM-10 module useful for arduino projects. My iPhone can find both of these devices using the SensorTag application or LightBlue.
I also found this
http://orcs.sebsoft.com/openvision/index.php/8-vision/37-how-to-acquire-data-by-c-from-bluetooth-4-bluetooth-low-energy-ti-ble-keyfob-ti-sensor-tag
I tried starting it up and scanning, but it didn't find any BLE devices. I don't even know if what I'm doing it right.
I have a BT 4.0 USB dongle.
How on earth do I detect a bluetooth device?
Thanks
Here is a two-part blog post about enumerating and configuring BLE devices in Windows 8.1.
BLE for developers in Windows 8.1 Part I
BLE for developers in Windows 8.1 Part II
After reading this, the documentation on MSDN seemed to make a lot more sense.
This is just a guess, but if you're using a generic HM-10 BT module, you might need to program it first to be discoverable and pairable.
You do that using AT commands which you can find in the HM-10 datasheet. The way to send those commands to the module is up to you, you can either use a microcontroller, Arduino for example, or via a serial console.

Record video from camcorder in C#

I need to be able to record video from an external camera in a C# application.
Unfortunately a webcam is pretty much out of the question as the application will record outside and during the evening/night. That is why I was thinking of a camcorder since it also has manual control over exposure and focus, lower noise and better sensor.
So far I would use the AV/S-Video output from the camcorder and send the signal to a USB capture card (the computer is a laptop so no PCI-E cards).
How would I be able to access the video stream from the C# application, now that it comes from the capture card ?
Does my proposed system seem feasible (achievable, good video quality, good fps)? Does anybody have another working solution?
Thanks
This Code Project Article could be of a good starting point.
The Author mentions :
The main goal of the application was to make it flexible and
extensible. The application itself can communicate with any video
source – it may be an IP video camera or a server, it may be a local
camera attached to USB, it may be an MMS stream from a remote server,
or it may be any other video source. And more of it, the application
can work with all these video sources simultaneously, displaying them
all on a single screen.
The solution I used in the end was Microsoft Expression Encoder.

Audio capturing in C#

I have a MAYA 44 USB sound card and would like to interface it with C#. I want to record from the provided microphones and produce a data array.
I have found examples when using the internal sound card from my laptop but when it comes to external it does not quite work.
Has anyone every connected the above sound card with C# please?
Have you had a look at the DirectSound API (Windows only though, I think). Might provide what you're after.
On how to record audio with C# in general there are already multiple threads on SO, so I won't talk about that.
I see two possible causes for your program which have different solutions:
You need to change which audio sources are muted in the windows volume control ("sndvol32.exe /R")
When opening the audio device there are multiple devices. And you're simply opening device 0 instead of enumerating them and perhaps choosing another one. The external sound-card might appear as a second device.

What audio codec do the following application makes use of?

Does anybody know what audio codec do the following VoIP applications make use of for live streaming of voice over IP? I need the above information for experimenting with my own VoIP server/client written in C#.
TeamSpeak
Pfingo
Windows Live Messenger
Yahoo Messenger
TeamSpeak 3 uses Speex. Never heard of Pfingo, and no idea on the last two.
I am not sure about the first two but the last ones use proprietary protocol.
I suggest, if possible, to do experiments with clients that supports SIP

Categories

Resources