Skip to content

Commit

Permalink
I lost all my work!
Browse files Browse the repository at this point in the history
  • Loading branch information
Larpoux committed Feb 26, 2025
1 parent 8aed57e commit dd5b470
Show file tree
Hide file tree
Showing 22 changed files with 289 additions and 183 deletions.
Binary file modified .DS_Store
Binary file not shown.
Binary file renamed tau/dev/.DS_Store → api/.DS_Store
Binary file not shown.
Binary file added api/player/.DS_Store
Binary file not shown.
2 changes: 1 addition & 1 deletion bin/cp.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ cp ../flutter_sound/README.md README.md
ed index.md >/dev/null << END
1i
---
title: Flutter Sound - 9.23.1
title: Flutter Sound - 9.24.1
summary: The Flutter Sound Project README.
layout: home
nav_order: 1
Expand Down
2 changes: 1 addition & 1 deletion index.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Flutter Sound - 9.23.1
title: Flutter Sound - 9.24.1
summary: The Flutter Sound Project README.
layout: home
nav_order: 1
Expand Down
Binary file modified live/.DS_Store
Binary file not shown.
Binary file modified tau/.DS_Store
Binary file not shown.
Binary file added tau/architecture.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
94 changes: 94 additions & 0 deletions tau/architecture.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36" version="26.0.14">
<diagram name="Page-1" id="tPfdObFUfHPUs4mXa5qV">
<mxGraphModel dx="1113" dy="1074" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="lL2I8nyDFY_r7_5SYSAq-1" value="Your App&lt;div&gt;(Dart)&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
<mxGeometry x="80" y="40" width="480" height="60" as="geometry" />
</mxCell>
<mxCell id="lL2I8nyDFY_r7_5SYSAq-2" value="Flutter Sound plugin&lt;br&gt;&lt;div&gt;(Dart)&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
<mxGeometry x="80" y="130" width="480" height="60" as="geometry" />
</mxCell>
<mxCell id="lL2I8nyDFY_r7_5SYSAq-3" value="flutter_sound_player_interface&lt;div&gt;(Dart)&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
<mxGeometry x="80" y="220" width="200" height="60" as="geometry" />
</mxCell>
<mxCell id="lL2I8nyDFY_r7_5SYSAq-4" value="Flutter Sound Web&lt;div&gt;(dart)&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
<mxGeometry x="360" y="220" width="200" height="60" as="geometry" />
</mxCell>
<mxCell id="lL2I8nyDFY_r7_5SYSAq-5" value="Flutter Sound Web&lt;div&gt;(JavaScript)&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
<mxGeometry x="360" y="310" width="200" height="60" as="geometry" />
</mxCell>
<mxCell id="lL2I8nyDFY_r7_5SYSAq-6" value="&lt;div&gt;Howler&lt;/div&gt;&lt;div&gt;(JavaScript)&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
<mxGeometry x="360" y="400" width="200" height="60" as="geometry" />
</mxCell>
<mxCell id="lL2I8nyDFY_r7_5SYSAq-7" value="Native Code&lt;div&gt;(Java)&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
<mxGeometry x="80" y="310" width="90" height="60" as="geometry" />
</mxCell>
<mxCell id="lL2I8nyDFY_r7_5SYSAq-8" value="Native Code&lt;div&gt;(Objective C)&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
<mxGeometry x="190" y="310" width="90" height="60" as="geometry" />
</mxCell>
<mxCell id="lL2I8nyDFY_r7_5SYSAq-9" value="Flutter Sound Core&lt;div&gt;(Java)&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
<mxGeometry x="80" y="400" width="90" height="60" as="geometry" />
</mxCell>
<mxCell id="lL2I8nyDFY_r7_5SYSAq-10" value="Flutter Sound Core&lt;div&gt;(Objective C)&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
<mxGeometry x="190" y="400" width="90" height="60" as="geometry" />
</mxCell>
<mxCell id="lL2I8nyDFY_r7_5SYSAq-15" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.208;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="lL2I8nyDFY_r7_5SYSAq-2" target="lL2I8nyDFY_r7_5SYSAq-3">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="180" y="188" as="sourcePoint" />
<mxPoint x="450" y="520" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="lL2I8nyDFY_r7_5SYSAq-18" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="lL2I8nyDFY_r7_5SYSAq-1" target="lL2I8nyDFY_r7_5SYSAq-2">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="400" y="570" as="sourcePoint" />
<mxPoint x="450" y="520" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="lL2I8nyDFY_r7_5SYSAq-19" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.42;exitY=1.017;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="lL2I8nyDFY_r7_5SYSAq-3" target="lL2I8nyDFY_r7_5SYSAq-7">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="130" y="280" as="sourcePoint" />
<mxPoint x="450" y="520" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="lL2I8nyDFY_r7_5SYSAq-20" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.6;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="lL2I8nyDFY_r7_5SYSAq-3" target="lL2I8nyDFY_r7_5SYSAq-8">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="400" y="570" as="sourcePoint" />
<mxPoint x="450" y="520" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="lL2I8nyDFY_r7_5SYSAq-22" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="lL2I8nyDFY_r7_5SYSAq-4" target="lL2I8nyDFY_r7_5SYSAq-5">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="400" y="570" as="sourcePoint" />
<mxPoint x="450" y="520" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="lL2I8nyDFY_r7_5SYSAq-23" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="lL2I8nyDFY_r7_5SYSAq-5" target="lL2I8nyDFY_r7_5SYSAq-6">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="400" y="570" as="sourcePoint" />
<mxPoint x="450" y="520" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="lL2I8nyDFY_r7_5SYSAq-24" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="lL2I8nyDFY_r7_5SYSAq-7" target="lL2I8nyDFY_r7_5SYSAq-9">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="400" y="570" as="sourcePoint" />
<mxPoint x="450" y="520" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="lL2I8nyDFY_r7_5SYSAq-25" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="lL2I8nyDFY_r7_5SYSAq-8" target="lL2I8nyDFY_r7_5SYSAq-10">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="400" y="570" as="sourcePoint" />
<mxPoint x="450" y="520" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="lL2I8nyDFY_r7_5SYSAq-27" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" target="lL2I8nyDFY_r7_5SYSAq-4">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="460" y="190" as="sourcePoint" />
<mxPoint x="450" y="520" as="targetPoint" />
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
4 changes: 4 additions & 0 deletions tau/dev.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,13 +59,17 @@ pod install
cd ..
```

## Architecture of Flutter Sound

![Architecture](architecture.png)
## Debug the example

If everything good, you are now ready to run the example in debug mode using either Visual Studio Code, Android Studio or XCode

- To debug/develop the Dart side, you open the project /tau/flutter_sound/example/ in Visual Studio Code or Android Studio.
- To debug/develop the iOS side you open /tau/flutter_sound/example/ios/Runner.xcworkspace in XCode.
- To debug/develop the Android side, you open the project /tau/flutter_sound/example/android in Android Studio
- To debug/develop the Javascript side you use the Developer Tool inside Google Chrome

## Debug your own App

Expand Down
Binary file modified tau/examples/.DS_Store
Binary file not shown.
2 changes: 1 addition & 1 deletion tau/examples/ex_multi_playback.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ nav_order: 9
---

The example source [is there](https://github.com/canardoux/flutter_sound/blob/master/example/lib/multi_playback/multi_playback.dart). You can have a live run of the examples [here](/live/index.html).
It create two [Player objects](/api/player/FlutterSoundPlayer-class.html) and use the verb [startPlayer()](/api/player/FlutterSoundPlayer/startPlayer.html) to play them.

This is a simple example doing several playbacks at the same time.
It creates two [Player objects](/api/player/FlutterSoundPlayer-class.html) and use the verb [startPlayer()](/api/player/FlutterSoundPlayer/startPlayer.html) to play them.

This example shows also :
- The [Pause](/api/player/FlutterSoundPlayer/pausePlayer.html)/[Resume](/api/player/FlutterSoundPlayer/resumePlayer.html) feature.
Expand Down
3 changes: 2 additions & 1 deletion tau/examples/ex_playback_from_stream_1.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,9 @@ Feeding Flutter Sound without back pressure is very simple but you can have two
* The App does not have any knowledge of when the block given to Flutter Sound is really played.
For example, if it does a `stopPlayer()` it will loose all the buffered data not yet played.

## You can see also those examples:
- [Streams](ex_streams)
- [Record To Stream](ex_record_to_stream)
- [Live Playback With Backpressure](fs-ex_playback_from_stream_2)
- [Live Playback With Backpressure](ex_playback_from_stream_2)

![screen shot](ScreenShots/PlaybackWithoutBackPressure.png)
3 changes: 2 additions & 1 deletion tau/examples/ex_playback_from_stream_2.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,9 @@ Then it calls [startPlayerFromStream()](/api/player/FlutterSoundPlayer/startPlay
If you do not need any back pressure, you can see another simple example : [LivePlaybackWithoutBackPressure.dart](fs-ex_playback_from_stream_1.html).
This other example is a little bit simpler because the App does not need to await the playback for each block before playing another one.

## You can see also those examples:
- [Streams](ex_streams)
- [Record To Stream](ex_record_to_stream)
- [Live Playback Without Backpressure](fs-ex_playback_from_stream_1)
- [Live Playback Without Backpressure](ex_playback_from_stream_1)

![screen shot](ScreenShots/PlaybackWithBackPressure.png)
2 changes: 1 addition & 1 deletion tau/examples/ex_record_to_stream.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,6 @@ The real interest of recording to a Stream is for example to feed a
Speech-to-Text engine, or for processing the Live data in Dart in real time.

You can also refer to the following guide:
- [Dart Streams](fs-ex_streams.html):
- [Dart Streams](/tau/guides/guides_live_streams.html):

![screen shot](ScreenShots/RecordToStream.png)
2 changes: 1 addition & 1 deletion tau/examples/ex_set_volume.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ The example source [is there](https://github.com/canardoux/flutter_sound/blob/ma
{% include image.html file="examples/set_volume.png" %}

This is a very simple basic example which allows the user to adjust the sound volume.
It launchs two [Players](/api/player/FlutterSoundPlayer-class.html) which play each an asset. The User can [adjust the volume](/api/player/FlutterSoundPlayer/setVolume.html) of them independently.
It launches two [Players](/api/player/FlutterSoundPlayer-class.html) which play each an asset. The User can [adjust the volume](/api/player/FlutterSoundPlayer/setVolume.html) of them independently.

This example is very basic.

Expand Down
2 changes: 0 additions & 2 deletions tau/examples/ex_simple_playback.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@ parent: Examples
nav_order: 1
---

The example source [is there](https://github.com/canardoux/flutter_sound/blob/master/example/lib/simple_playback/simple_playback.dart). You can have a live run of the examples [here](/live/index.html).

This is a very simple example for Flutter Sound beginners, that shows how to play a remote file.
It create a [Player object](/api/player/FlutterSoundPlayer-class.html) and use the verb [startPlayer()](/api/player/FlutterSoundPlayer/startPlayer.html).

Expand Down
1 change: 1 addition & 0 deletions tau/examples/ex_sound_effect.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ nav_order: 13
The example source [is there](https://github.com/canardoux/flutter_sound/blob/master/example/lib/soundEffect/sound_effect.dart). You can have a live run of the examples [here](/live/index.html).

Play from stream can be very efficient to play sound effects in real time. For example in a game App.

In this example, the App open three [players](/api/player/FlutterSoundPlayer-class.html) and call [startPlayerFromStream()](/api/player/FlutterSoundPlayer/startPlayerFromStream.html) during initialization.
When it want to play a noise, it has just to call the synchronous verb [feed](/api/player/FlutterSoundPlayer/feedInt16FromStream.html). Very fast.

Expand Down
3 changes: 2 additions & 1 deletion tau/examples/ex_speed_control.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ parent: Examples
nav_order: 11
---
The example source [is there](https://github.com/canardoux/flutter_sound/blob/master/example/lib/speed_control/speed_control.dart). You can have a live run of the examples [here](/live/index.html).
It launchs a [Player](/api/player/FlutterSoundPlayer-class.html) which play an asset.

It launches a [Player](/api/player/FlutterSoundPlayer-class.html) which play an asset.
The User can [adjust the playback speed](/api/player/FlutterSoundPlayer/setSpeed.html) of it.

This is a very simple example showing how tune the speed of a playback.
Expand Down
2 changes: 1 addition & 1 deletion tau/guides/guides-install.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: "Installation"
summary: "Flutter Sound installation."
parent: Guides
nav_order: 5
nav_order: 2
---
# Installation

Expand Down
2 changes: 1 addition & 1 deletion tau/guides/guides_getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: "Getting Started"
summary: "Introduction for Flutter Sound beginners."
parent: Guides
nav_order: 3
nav_order: 1
---

## Playback
Expand Down
Loading

0 comments on commit dd5b470

Please sign in to comment.