Jump to content
Sign in to follow this  
Skullcode

Help to port this component to delphi rio

Recommended Posts

The following component is quite old and its seems that the author stopped from upgrading it and released it to source forge as open source 

 

It is compile and installed on delphi rio but with many warnings any idea on how to make this component friendly with delphi rio and above? 

https://sourceforge.net/projects/waveaudiopkg/

Share this post


Link to post

I want to suggest to try different components, it is also open source, after looking at the documentation, i can say the VC components from LakeOfSoft http://www.lakeofsoft.com/vc/ are more powerful, not sure if there will be warnings or not, but you should have a look.

The features listed in that link, but it missing key things to mention like, fully multithreaded, this can save you great deal of time.

 

  • Thanks 1

Share this post


Link to post
Posted (edited)

i have tested the component you provide 

 

but there is some downfalls 

 

1 Stereomix device produce a huge noise 

2 when change audio level during play the whole app freezes

 

unless i am doing something wrong 

 

here is a demo you can test

 

Edited by Skullcode

Share this post


Link to post

@Skullcode Why not get started with tweaking the demos/samples first? that in case you want to understand it better.

 

Three things i see looking at your demo

1) to start and stop them use this

procedure Tform1.StartStopPlay(Start: Boolean);
begin
  if not Start then
  begin
    outwave.close();
    awave.close();
  end
  else
  begin
    outwave.open();
    awave.open();
  end;
  ///    or
  awave.active := Start;    //  Here the order of active is important
  outwave.active := Start;  //  if you close set the output.active = false then exception might raise
  // means the following is wrong
  {outwave.active := Start;
  awave.active := Start;}
end;

2) You are trying to access VCL from background thread in 

procedure TForm1.outwaveFeedDone(sender: unavclInOutPipe; data: Pointer; len: Cardinal);
begin
  //memo1.Lines.Add(inttostr(len));
end;

Commenting that line will fix the freezing and the unpredicted behaviour.

 

3) you are using the 8000 for samplesPerSec with higher you should get better quality, here again try i suggest the samples, after that you can decide if it will work for you or not.

 

It is bad that the forum of those gems are gone, and i am not going to support them, so good luck.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×