Fix sound rendering for web
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
This commit is contained in:
@@ -59,7 +59,7 @@ class GameSelectScreen extends StatelessWidget {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<List<WolfensteinData>> loadData([String? directory]) async {
|
Future<List<WolfensteinData>> loadData({String? directory}) async {
|
||||||
final List<WolfensteinData> loadedGames = [];
|
final List<WolfensteinData> loadedGames = [];
|
||||||
|
|
||||||
// 1. Always attempt to load bundled assets first (works on ALL platforms)
|
// 1. Always attempt to load bundled assets first (works on ALL platforms)
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ import 'package:flutter_soloud/flutter_soloud.dart';
|
|||||||
import 'package:wolf_dart/game_select_screen.dart';
|
import 'package:wolf_dart/game_select_screen.dart';
|
||||||
|
|
||||||
void main() async {
|
void main() async {
|
||||||
|
WidgetsFlutterBinding.ensureInitialized();
|
||||||
|
|
||||||
await SoLoud.instance.init(
|
await SoLoud.instance.init(
|
||||||
sampleRate: 44100, // Audio quality
|
sampleRate: 44100, // Audio quality
|
||||||
bufferSize: 2048, // Buffer size affects latency
|
bufferSize: 2048, // Buffer size affects latency
|
||||||
|
|||||||
@@ -69,10 +69,14 @@ class ImfRenderer {
|
|||||||
bytes.add('data'.codeUnits);
|
bytes.add('data'.codeUnits);
|
||||||
bytes.add(_int32ToBytes(dataSize));
|
bytes.add(_int32ToBytes(dataSize));
|
||||||
|
|
||||||
// Append the actual raw audio data
|
// Append the actual raw audio data (Blazing Fast version)
|
||||||
for (int sample in pcmData) {
|
final byteData = ByteData(dataSize);
|
||||||
bytes.add(_int16ToBytes(sample));
|
for (int i = 0; i < pcmData.length; i++) {
|
||||||
|
// Multiply by 2 because each Int16 takes up 2 bytes.
|
||||||
|
// Endian.little is strictly required for the standard WAV format.
|
||||||
|
byteData.setInt16(i * 2, pcmData[i], Endian.little);
|
||||||
}
|
}
|
||||||
|
bytes.add(byteData.buffer.asUint8List());
|
||||||
|
|
||||||
return bytes.toBytes();
|
return bytes.toBytes();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user