How can I draw waveform in UWP application? - c#

I have a UWP app that want to display the whole waveform from mp3 or mp4 etc. I tried to use NAudio.WaveFormRenderer(https://github.com/naudio/NAudio.WaveFormRenderer), but it doesn’t use in UWP app due to .Net.Core is strict about reading files.
I want to know how to draw whole waveform from read mp3, mp4.
Are there any solutions?

Related

How to display audio signal on Universal Window Platfom (UWP) C#?

I want to display signal from audio file (ex: .mp3, .wav, .wma,..) to view on Universal Windows App. It may be look like this:
How to do it, which Control should I use and are there any libraries can help I do it on UWP? Thanks!
There are a couple of options out there readily available. Here's just 2 of them:
clarkezone/audiovisualizer (VU Meters, spectrum & waveform plotting)
NAudio.WaveFormRenderer (Plots waveforms i.e. PCM data); Maybe this video will be useful as well
Otherwise once (a while ago now) I used the old windows forms chart embedded into a WPF application (have a look here if its useful).

Decode GIF frames and encode to a video C#

I'm developing an app that consumes the 8tracks API. Some of the playlists have gifs as the playlist art and I would like to have those gifs play in the app. UWP does not support native gif playback so i'm trying to figure out a way to make them play. So far I have tried using XamlAnimatedGif but its performance is bad, especially on phones.
Now i'm using Giphy API to upload the gif which also creates an mp4 version of the gif and plays back smoothly in a MediaElement. I can play up to 10 MP4s at a time smoothly(not that ill ever need that many playing at a given time). I'm wondering if i can eliminate Giphy and have the computer/phone just take each frame from the gif and then encode them to an mp4(or other video file). Is this a good option? what would be any cons to doing this vs. what im already doing with Giphy? If i decide to at least try this Is there any where i can read up on decoding the gifs to frames and encoding them to a video?
You could use the GifBitmapDecoder to get the frames
https://msdn.microsoft.com/en-us/library/system.windows.media.imaging.gifbitmapdecoder(v=vs.90).aspx
and there are a number of options here to convert stills to a video:
How can I create a video from a directory of images in C#?

Show waveform of playing sound

Let's say I want to make a simple application that can play sounds. In WPF, I can use either the MediaPlayer class or the MediaElement class to take care of the playback.
Is it possible to actually extract data from the playing sound in order to draw the playing sound as a waveform (possibly using a charting library)? Something like in the image below. Alternatively, is it possible to at least obtain and display the output volume as we see in the Windows speakers system tray icon (second image below)?

Storing animated GIFs on Windows Phone

My own tests have shown that GIF images saved to the Windows Phone 8 MediaLibrary always get converted to JPG. Is there any way around that other than managing my own library - which I'm already doing?
As far as i know you can not directly save .gif file into Media Library, you can try to save in Camera Roll using Image Tool Library.
Hope it helps
Just to clear up some misconceptions here, WP8 does in fact save gifs from IE, MMS, emails etc as full gif files, NOT jpgs. It is just that when displayed in the Picture hub, only the first frame is displayed. WP7, however, did convert gif to jpg on save.
You can prove this yourself by downloading the GIF Viewer app which will allow you to browse and play gifs in your media library.

Save Kinect's color camera video stream in to .avi video

I want to save the video streams that is captured by Kinect's Color camera to .avi format video, I tried many ways of doing this but nothing was succeeded. Has anyone successfully done this? I'm using Kinect for Windows SDK and WFP for application development
I guess the easiest workaround would be to use a screen capture software like http://camstudio.org/.
There is also post with the same question her:
Kinect recording a video in C# WPF
As far as I understand you need to to save the single frames delivered by the kinect by into a video file. This post should explain how to do it How to render video from raw frames in WPF?.
You can use the AVIFile Windows API using interop:
http://msdn.microsoft.com/en-us/library/windows/desktop/dd756808(v=vs.85).aspx
or you can use a wrapper like this one, done by Corina John
http://www.codeproject.com/Articles/7388/A-Simple-C-Wrapper-for-the-AviFile-Library

Categories

Resources