flowchat | reddit alternative featuring communities and live-updating | Chat library
kandi X-RAY | flowchat Summary
kandi X-RAY | flowchat Summary
[FlowChat] — An open-source, self-hostable reddit alternative featuring communities and live-updating threaded conversations.
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
- On web socket
- Creates a community
- Creates a reply
- Create a Discussion object
- On connect
- Constructs a set of user scopes from the given session
- Sends a periodic ping
- Builds a session scope
- Configure HikariConfig instance
- Loads properties from the system properties file
- Creates a map from an http request body
- Returns true if this session scope is equal to the one passed in
- Compares two comments
- Compares the user settings
- Get the ranking constants
- Write ranking values to database
- This method generates a hashCode for the Session object
- Compares this tag with the specified name
- On web socket close
- Creates a hashCode of the object
- Compares two Discussion objects for equality
- Returns a unique hashCode of the radio buttons
- Fetches the list of available words
flowchat Key Features
flowchat Examples and Code Snippets
Community Discussions
Trending Discussions on flowchat
QUESTION
I'm having an issue with a BufferedWaveProvider from NAudio library. I'm recording 2 audio devices (a microphone and a speaker), merge them into 1 stream and send it to an encoder (for a video).
To do this, I do the following:
- Create a thread where I'll record the microphone using
WasapiCapture
. - Create a thread where I'll record the speakers audio using
WasapiLookbackCapture
. (I also use aSilenceProvider
so I don't have gaps in what I record). - I'll want to mix these 2 audio so I have to make sure they have the same format, so I detect what's the best WaveFormat in all these audio devices. In my scenario, it's the speaker. So I decide that the Microphone audio will pass through a
MediaFoundationResampler
to adapt its format so it has the same than the one from the speaker. - Each audio chunks from the Wasapi(Lookback)Capture are sent to a
BufferedWaveProvider
. - Then, I also made a
MixingSampleProvider
where I pass theISampleProvider
from each recording thread. So I'm passing theMediaFoundationResampler
for the Microphone, andBufferedWaveProvider
for the Speakers. - In loop in a third thread, I read the data from the
MixingSampleProvider
, which is supposed to asynchronously empty theBufferedWaveProvider
(s) while it's getting filled. - Because each buffer may not get filled exactly at the same time, I'm looking at what's the minimal common duration there is between these 2 buffers, and I'm reading this amount out of the mixing sample provider.
- Then I enqueue what I read so my encoder, in a 4th thread, will treat it in parallel too.
Please see the flowchat below that illustrates my description above.
My problem is the following:- It works GREAT when recording the microphone and speaker for more than 1h while playing video game that uses the microphone too (for online multiplayer). No crash. The buffers are staying quite empty all the time. It's awesome.
- But for some reason, every time I try my app
during
a Discord, Skype or Teams audio conversation, I immediately (within 5sec) crash onBufferedWaveProvider.AppSamples
because the buffer gets full.
Looking at it in debug mode, I can see that:
- The buffer corresponding to the speaker is almost empty. It has in average 100ms max of audio.
- The buffer corresponding to the microphone (the one I resample) is full (5 seconds).
From what I read on NAudio's author's blog, the documentation and on StackOverflow, I think I'm doing the best practice (but I can be wrong), which is writing in the buffer from a thread, and reading it in parallel from another one. There is of course a risk that it's getting filled faster than I read it, and it's basically what's happening right now. But I'm not understanding why.
Help neededI'd like some help to understand what I'm missing here, please. The following points are confusing me:
Why does this issue happens only with Discord/Skype/Teams meetings? The video games I'm using are using the microphone too, so I can't imagine it's something like
another app is preventing the microphone/speakers to works correctly
.I synchronize the startup of both audio recorder. Do to this, I'm using a signal to ask the recorders to starts, and when they all started to generate data (through
DataAvailable
event), I send a signal to tell them to fill in the buffers with what they will receive in the next event. It's probably not perfect because both audio devices send theirDataAvailable
at different times, but we're talking about 60ms of difference maximum (on my machine), not 5 seconds. So I don't understand why it's getting filled.To bounce on what I said in #2, my telemetry shows that the buffer is getting filled this way (values are dummy):
ANSWER
Answered 2021-Mar-08 at 05:45Following more investigations and a post on GitHub: https://github.com/naudio/NAudio/issues/742
I found out that I should listen to the MixingSampleProvider.MixerInputEnded
event and readd the SampleProvider to the MixingSampleProvider when it happens.
The reason why it happens is that I'm treating the audio while capturing it, and there are some moments where I may treat it faster than I record it, therefore the MixingSampleProvider considers it has nothing more to read and stops. So I should tell it that no, it's not over and it should expect more.
QUESTION
I'm on Windows 10, editing MarkDown files with VS-Code.
I would like to draw a flow chart like graph and adding in page links to nodes in the graph.
I read through the documentation of both mermaid and flowchat.js, they only provide the net link method.
What I am looking for is an in page jump after the click, lead the readers to the place where the detail explanation of the node is located in the file.
Would there be a way to create that kind of graph? Thanks a lot!
...ANSWER
Answered 2019-Dec-18 at 08:30According to documentation Interaction this can be done with click
:
It is possible to bind a click event to a node, the click can lead to either a javascript callback or to a link which will be opened in a new browser tab.
Examples of tooltip usage below:
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install flowchat
You can use flowchat like any standard Java library. Please include the the jar files in your classpath. You can also use any IDE and you can run and debug the flowchat component as you would do with any other Java program. Best practice is to use a build tool that supports dependency management such as Maven or Gradle. For Maven installation, please refer maven.apache.org. For Gradle installation, please refer gradle.org .
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page