31 lines
801 B
Dart
31 lines
801 B
Dart
import 'package:flutter_webrtc/flutter_webrtc.dart';
|
|
|
|
import '../errors.dart';
|
|
import '../proto/livekit_models.pb.dart';
|
|
import 'options.dart';
|
|
import 'track.dart';
|
|
|
|
class LocalAudioTrack extends Track {
|
|
MediaStream mediaStream;
|
|
|
|
LocalAudioTrack(String name, MediaStreamTrack track, this.mediaStream)
|
|
: super(TrackType.AUDIO, name, track);
|
|
|
|
Future<LocalAudioTrack> createTrack(LocalAudioTrackOptions? options) async {
|
|
try {
|
|
var stream = await navigator.mediaDevices.getUserMedia({
|
|
"audio": true,
|
|
"video": false,
|
|
});
|
|
|
|
if (stream.getAudioTracks().length == 0) {
|
|
return Future.error(TrackCreateError());
|
|
}
|
|
|
|
return LocalAudioTrack("", stream.getVideoTracks().first, stream);
|
|
} catch (e) {
|
|
return Future.error(e);
|
|
}
|
|
}
|
|
}
|