Update Cryville.Audio.

This commit is contained in:
2023-11-01 01:01:13 +08:00
parent 724cb10bc1
commit b57959b4bf
29 changed files with 1289 additions and 967 deletions

View File

@@ -268,12 +268,12 @@ namespace Cryville.Crtr {
"\nStates: c{0} / b{1}",
cbus.ActiveStateCount, bbus.ActiveStateCount
);
var aTime = Game.AudioClient.Position;
var aTime = Game.AudioClient.Position - atime0;
var iTime = inputProxy.GetTimestampAverage();
statusbuf.AppendFormat(
"\nSTime: {0:G9}s {5} {6}\nATime: {1:G9}s ({3:+0.0ms;-0.0ms;0}) {5} {6}\nITime: {2:G9}s ({4:+0.0ms;-0.0ms;0}) {5} {7}",
cbus.Time, aTime, iTime,
(aTime - atime0 - cbus.Time) * 1e3,
(aTime - cbus.Time) * 1e3,
(iTime - cbus.Time) * 1e3,
forceSyncFrames != 0 ? "(force sync)" : "",
paused ? "(paused)" : "",
@@ -529,7 +529,7 @@ namespace Cryville.Crtr {
logs.text = "";
}
Game.AudioSequencer.Playing = true;
atime0 = Game.AudioClient.Position - startOffset;
atime0 = Game.AudioClient.BufferPosition - startOffset;
inputProxy.SyncTime(cbus.Time);
inputProxy.Activate();
}

View File

@@ -1,4 +1,4 @@
using Cryville.Audio.Source;
using Cryville.Audio.Source.Libav;
using System.Collections.Generic;
using System.IO;

View File

@@ -26,6 +26,7 @@ namespace Cryville.Crtr {
public static string GameDataPath { get; private set; }
public static string UnityDataPath { get; private set; }
public static IAudioDeviceManager AudioManager;
public static IAudioDevice AudioDevice;
public static AudioClient AudioClient;
public static SimpleSequencerSource AudioSequencer;
public static SimpleSequencerSession AudioSession;
@@ -89,6 +90,16 @@ namespace Cryville.Crtr {
ffmpeg.RootPath = "";
#else
#error No FFmpeg search path.
#endif
#if UNITY_EDITOR_WIN || UNITY_STANDALONE_WIN
EngineBuilder.Engines.Add(typeof(Audio.Wasapi.MMDeviceEnumeratorWrapper));
EngineBuilder.Engines.Add(typeof(Audio.WaveformAudio.WaveDeviceManager));
#elif UNITY_ANDROID
EngineBuilder.Engines.Add(typeof(Audio.AAudio.AAudioManager));
EngineBuilder.Engines.Add(typeof(Audio.OpenSLES.Engine));
#else
#error No audio engine defined.
#endif
while (true) {
try {
@@ -99,8 +110,13 @@ namespace Cryville.Crtr {
}
else {
Logger.Log("main", 1, "Audio", "Using audio API: {0}", AudioManager.GetType().Namespace);
AudioClient = AudioManager.GetDefaultDevice(DataFlow.Out).Connect();
AudioClient.Init(AudioClient.DefaultFormat);
AudioDevice = AudioManager.GetDefaultDevice(DataFlow.Out);
AudioClient = AudioDevice.Connect(AudioDevice.DefaultFormat, AudioDevice.MinimumBufferSize + AudioDevice.BurstSize);
Logger.Log(
"main", 1, "Audio",
"Audio Output = {{ Name = \"{0}\", BurstSize = {1}, Format = {2}, BufferSize = {3} }}",
AudioDevice.Name, AudioDevice.BurstSize, AudioClient.Format, AudioClient.BufferSize
);
AudioClient.Source = AudioSequencer = new SimpleSequencerSource();
AudioSession = AudioSequencer.NewSession();
AudioSequencer.Playing = true;
@@ -147,6 +163,7 @@ namespace Cryville.Crtr {
try {
AudioClient.Dispose();
AudioSequencer.Dispose();
AudioDevice.Dispose();
AudioManager.Dispose();
}
catch (Exception ex) {

Binary file not shown.

View File

@@ -0,0 +1,67 @@
fileFormatVersion: 2
guid: ad9369519dc90f543be881c573ced066
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
: Any
second:
enabled: 0
settings:
Exclude Android: 0
Exclude Editor: 1
Exclude Linux64: 1
Exclude OSXUniversal: 1
Exclude Win: 1
Exclude Win64: 1
- first:
Android: Android
second:
enabled: 1
settings: {}
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: None
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,182 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Cryville.Audio.AAudio</name>
</assembly>
<members>
<member name="T:Cryville.Audio.AAudio.AAudioManager">
<summary>
An <see cref="T:Cryville.Audio.IAudioDeviceManager" /> that interacts with AAudio.
</summary>
</member>
<member name="M:Cryville.Audio.AAudio.AAudioManager.#ctor">
<summary>
Creates an instance of the <see cref="T:Cryville.Audio.AAudio.AAudioManager" /> class.
</summary>
<exception cref="T:System.InvalidOperationException">No Java VM is registered.</exception>
<exception cref="T:System.PlatformNotSupportedException">AAudio is not supported on the current platform.</exception>
</member>
<member name="M:Cryville.Audio.AAudio.AAudioManager.Finalize">
<summary>
Releases all the unmanaged resources used by this instance.
</summary>
</member>
<member name="M:Cryville.Audio.AAudio.AAudioManager.Dispose">
<summary>
Releases all the resources used by this instance.
</summary>
</member>
<member name="M:Cryville.Audio.AAudio.AAudioManager.Dispose(System.Boolean)">
<summary>
Releases all the resources used by this instance.
</summary>
<param name="disposing">Whether to release managed resources.</param>
</member>
<member name="M:Cryville.Audio.AAudio.AAudioManager.GetDefaultDevice(Cryville.Audio.DataFlow)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.AAudio.AAudioManager.GetDevices(Cryville.Audio.DataFlow)">
<inheritdoc />
</member>
<member name="T:Cryville.Audio.AAudio.AAudioStream">
<summary>
An <see cref="T:Cryville.Audio.AudioClient" /> that interacts with AAudio.
</summary>
</member>
<member name="M:Cryville.Audio.AAudio.AAudioStream.Dispose(System.Boolean)">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.AAudio.AAudioStream.Device">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.AAudio.AAudioStream.Format">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.AAudio.AAudioStream.BufferSize">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.AAudio.AAudioStream.MaximumLatency">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.AAudio.AAudioStream.Position">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.AAudio.AAudioStream.BufferPosition">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.AAudio.AAudioStream.Start">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.AAudio.AAudioStream.Pause">
<inheritdoc />
</member>
<member name="T:Cryville.Audio.AAudio.AAudioStreamBuilder">
<summary>
An <see cref="T:Cryville.Audio.IAudioDevice" /> that interacts with AAudio.
</summary>
</member>
<member name="M:Cryville.Audio.AAudio.AAudioStreamBuilder.Finalize">
<summary>
Releases all the unmanaged resources used by this instance.
</summary>
</member>
<member name="M:Cryville.Audio.AAudio.AAudioStreamBuilder.Dispose">
<summary>
Releases all the resources used by this instance.
</summary>
</member>
<member name="M:Cryville.Audio.AAudio.AAudioStreamBuilder.Dispose(System.Boolean)">
<summary>
Releases all the resources used by this instance.
</summary>
<param name="disposing">Whether to release managed resources.</param>
</member>
<member name="P:Cryville.Audio.AAudio.AAudioStreamBuilder.Name">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.AAudio.AAudioStreamBuilder.DataFlow">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.AAudio.AAudioStreamBuilder.BurstSize">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.AAudio.AAudioStreamBuilder.MinimumBufferSize">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.AAudio.AAudioStreamBuilder.DefaultBufferSize">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.AAudio.AAudioStreamBuilder.DefaultFormat">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.AAudio.AAudioStreamBuilder.IsFormatSupported(Cryville.Audio.WaveFormat,System.Nullable{Cryville.Audio.WaveFormat}@,Cryville.Audio.AudioShareMode)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.AAudio.AAudioStreamBuilder.Connect(Cryville.Audio.WaveFormat,System.Int32,Cryville.Audio.AudioShareMode)">
<inheritdoc />
</member>
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStreamBuilder_setAllowedCapturePolicy(System.IntPtr,Android.AAudio.Native.aaudio_allowed_capture_policy_t)">
<remarks>Available since API level 29.</remarks>
</member>
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStreamBuilder_setAttributionTag(System.IntPtr,System.String)">
<remarks>Available since API level 31.</remarks>
</member>
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStreamBuilder_setChannelMask(System.IntPtr,Android.AAudio.Native.aaudio_channel_mask_t)">
<remarks>Available since API level 32.</remarks>
</member>
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStreamBuilder_setContentType(System.IntPtr,Android.AAudio.Native.aaudio_content_type_t)">
<remarks>Available since API level 28.</remarks>
</member>
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStreamBuilder_setInputPreset(System.IntPtr,Android.AAudio.Native.aaudio_input_preset_t)">
<remarks>Available since API level 28.</remarks>
</member>
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStreamBuilder_setIsContentSpatialized(System.IntPtr,System.Boolean)">
<remarks>Available since API level 32.</remarks>
</member>
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStreamBuilder_setPackageName(System.IntPtr,System.String)">
<remarks>Available since API level 31.</remarks>
</member>
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStreamBuilder_setPrivacySensitive(System.IntPtr,System.Boolean)">
<remarks>Available since API level 30.</remarks>
</member>
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStreamBuilder_setSessionId(System.IntPtr,Android.AAudio.Native.aaudio_session_id_t)">
<remarks>Available since API level 28.</remarks>
</member>
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStreamBuilder_setSpatializationBehavior(System.IntPtr,Android.AAudio.Native.aaudio_spatialization_behavior_t)">
<remarks>Available since API level 32.</remarks>
</member>
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStreamBuilder_setUsage(System.IntPtr,Android.AAudio.Native.aaudio_usage_t)">
<remarks>Available since API level 28.</remarks>
</member>
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStream_getAllowedCapturePolicy(System.IntPtr)">
<remarks>Available since API level 29.</remarks>
</member>
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStream_getChannelMask(System.IntPtr)">
<remarks>Available since API level 32.</remarks>
</member>
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStream_getContentType(System.IntPtr)">
<remarks>Available since API level 28.</remarks>
</member>
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStream_getInputPreset(System.IntPtr)">
<remarks>Available since API level 28.</remarks>
</member>
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStream_getSessionId(System.IntPtr)">
<remarks>Available since API level 28.</remarks>
</member>
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStream_getSpatializationBehavior(System.IntPtr)">
<remarks>Available since API level 32.</remarks>
</member>
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStream_getUsage(System.IntPtr)">
<remarks>Available since API level 28.</remarks>
</member>
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStream_isContentSpatialized(System.IntPtr)">
<remarks>Available since API level 32.</remarks>
</member>
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStream_isPrivacySensitive(System.IntPtr)">
<remarks>Available since API level 30.</remarks>
</member>
<member name="M:Android.AAudio.Native.UnsafeNativeMethods.AAudioStream_release(System.IntPtr)">
<remarks>Available since API level 30.</remarks>
</member>
</members>
</doc>

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 4201f1cb0b6746a41bfa24ff30b41daa
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,67 @@
fileFormatVersion: 2
guid: e110dd2d53d9f8944ae090166f4bc17e
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
: Any
second:
enabled: 0
settings:
Exclude Android: 0
Exclude Editor: 1
Exclude Linux64: 1
Exclude OSXUniversal: 1
Exclude Win: 1
Exclude Win64: 1
- first:
Android: Android
second:
enabled: 1
settings: {}
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: None
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,142 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Cryville.Audio.OpenSLES</name>
</assembly>
<members>
<member name="T:Cryville.Audio.OpenSLES.Engine">
<summary>
An <see cref="T:Cryville.Audio.IAudioDeviceManager" /> that interacts with OpenSL ES.
</summary>
</member>
<member name="M:Cryville.Audio.OpenSLES.Engine.#ctor">
<summary>
Creates an instance of the <see cref="T:Cryville.Audio.OpenSLES.Engine" /> class.
</summary>
</member>
<member name="M:Cryville.Audio.OpenSLES.Engine.Finalize">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.OpenSLES.Engine.Dispose">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.OpenSLES.Engine.Dispose(System.Boolean)">
<summary>
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
</summary>
<param name="disposing">Whether the method is being called by user.</param>
</member>
<member name="M:Cryville.Audio.OpenSLES.Engine.GetDefaultDevice(Cryville.Audio.DataFlow)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.OpenSLES.Engine.GetDevices(Cryville.Audio.DataFlow)">
<inheritdoc />
</member>
<member name="T:Cryville.Audio.OpenSLES.OutputClient">
<summary>
An <see cref="T:Cryville.Audio.AudioClient" /> that interacts with OpenSL ES.
</summary>
</member>
<member name="M:Cryville.Audio.OpenSLES.OutputClient.Finalize">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.OpenSLES.OutputClient.Dispose(System.Boolean)">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.OpenSLES.OutputClient.Device">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.OpenSLES.OutputClient.Format">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.OpenSLES.OutputClient.BufferSize">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.OpenSLES.OutputClient.MaximumLatency">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.OpenSLES.OutputClient.Position">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.OpenSLES.OutputClient.BufferPosition">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.OpenSLES.OutputClient.Pause">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.OpenSLES.OutputClient.Start">
<inheritdoc />
</member>
<member name="T:Cryville.Audio.OpenSLES.OutputDevice">
<summary>
An <see cref="T:Cryville.Audio.IAudioDevice" /> that interacts with OpenSL ES.
</summary>
</member>
<member name="M:Cryville.Audio.OpenSLES.OutputDevice.Finalize">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.OpenSLES.OutputDevice.Dispose">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.OpenSLES.OutputDevice.Dispose(System.Boolean)">
<summary>
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
</summary>
<param name="disposing">Whether the method is being called by user.</param>
</member>
<member name="P:Cryville.Audio.OpenSLES.OutputDevice.Name">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.OpenSLES.OutputDevice.DataFlow">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.OpenSLES.OutputDevice.BurstSize">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.OpenSLES.OutputDevice.MinimumBufferSize">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.OpenSLES.OutputDevice.DefaultBufferSize">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.OpenSLES.OutputDevice.DefaultFormat">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.OpenSLES.OutputDevice.IsFormatSupported(Cryville.Audio.WaveFormat,System.Nullable{Cryville.Audio.WaveFormat}@,Cryville.Audio.AudioShareMode)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.OpenSLES.OutputDevice.Connect(Cryville.Audio.WaveFormat,System.Int32,Cryville.Audio.AudioShareMode)">
<inheritdoc />
</member>
<member name="T:Cryville.Audio.OpenSLES.OpenSLException">
<summary>
Exception occurring in OpenSL ES.
</summary>
</member>
<member name="M:Cryville.Audio.OpenSLES.OpenSLException.#ctor">
<summary>
Creates an instance of the <see cref="T:Cryville.Audio.OpenSLES.OpenSLException" /> class.
</summary>
</member>
<member name="M:Cryville.Audio.OpenSLES.OpenSLException.#ctor(System.String)">
<summary>
Creates an instance of the <see cref="T:Cryville.Audio.OpenSLES.OpenSLException" /> class.
</summary>
<param name="message">The error message that explains the reason for the exception.</param>
</member>
<member name="M:Cryville.Audio.OpenSLES.OpenSLException.#ctor(System.String,System.Exception)">
<summary>
Creates an instance of the <see cref="T:Cryville.Audio.OpenSLES.OpenSLException" /> class.
</summary>
<param name="message">The error message that explains the reason for the exception.</param>
<param name="innerException">The exception that is the cause of the current exception.</param>
</member>
<member name="M:Cryville.Audio.OpenSLES.OpenSLException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Creates an instance of the <see cref="T:Cryville.Audio.OpenSLES.OpenSLException" /> class with serialized data.
</summary>
<param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo" /> that holds the serialized object data about the exception being thrown.</param>
<param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext" /> that contains contextual information about the source or destination.</param>
</member>
</members>
</doc>

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: e5664850b7f66394f9d895d37af581dd
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: c974fcfa1d9bf9d49b2d40232f475dc4
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,137 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Cryville.Audio.Source.Libav</name>
</assembly>
<members>
<member name="T:Cryville.Audio.Source.Libav.LibavFileAudioSource">
<summary>
An <see cref="T:Cryville.Audio.AudioStream" /> that uses Libav to demux and decode audio files.
</summary>
</member>
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.#ctor(System.String)">
<summary>
Creates an instance of the <see cref="T:Cryville.Audio.Source.Libav.LibavFileAudioSource" /> class and loads the specified <paramref name="file" />.
</summary>
<param name="file">The audio file.</param>
</member>
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.Disposed">
<summary>
Whether this audio stream has been disposed.
</summary>
</member>
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.Dispose(System.Boolean)">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.EndOfData">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.BestStreamIndex">
<summary>
The index to the best audio stream.
</summary>
</member>
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.Streams">
<summary>
The collection of indices to all audio streams.
</summary>
</member>
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.SelectStream">
<summary>
Selects the best stream as the source.
</summary>
<exception cref="T:System.InvalidOperationException">The stream has been selected.</exception>
<remarks>
<para>This method can only be called before <see cref="M:Cryville.Audio.AudioStream.SetFormat(Cryville.Audio.WaveFormat,System.Int32)" /> is called, which is called while setting <see cref="P:Cryville.Audio.AudioClient.Source" />.</para>
</remarks>
</member>
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.SelectStream(System.Int32)">
<summary>
Selects a stream as the source.
</summary>
<param name="index">The index of the stream.</param>
<exception cref="T:System.InvalidOperationException">The stream has been selected.</exception>
<remarks>
<para>This method can only be called before <see cref="M:Cryville.Audio.AudioStream.SetFormat(Cryville.Audio.WaveFormat,System.Int32)" /> is called, which is called while setting <see cref="P:Cryville.Audio.AudioClient.Source" />.</para>
</remarks>
</member>
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.GetStreamDuration(System.Int32)">
<summary>
Gets the duration of a stream or the file.
</summary>
<param name="streamId">The stream index. The duration of the file is retrieved if <c>-1</c> is specified.</param>
<returns>The duration in seconds.</returns>
</member>
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.IsFormatSupported(Cryville.Audio.WaveFormat)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.OnSetFormat">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.Read(System.Byte[],System.Int32,System.Int32)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.Seek(System.Int64,System.IO.SeekOrigin)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.SeekTime(System.Double,System.IO.SeekOrigin)">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.CanRead">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.CanSeek">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.CanWrite">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.Length">
<inheritdoc />
<remarks>
<para>This property may be inaccurate.</para>
</remarks>
</member>
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.Duration">
<inheritdoc />
<remarks>
<para>This property may be inaccurate.</para>
</remarks>
</member>
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.Time">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.Position">
<inheritdoc />
<remarks>
<para>This property may become inaccurate after <see cref="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.Seek(System.Int64,System.IO.SeekOrigin)" /> is called.</para>
</remarks>
</member>
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.Flush">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.SetLength(System.Int64)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.Write(System.Byte[],System.Int32,System.Int32)">
<inheritdoc />
</member>
<member name="T:Cryville.Audio.Source.Libav.LibavException">
<summary>
The exception that is thrown by Libav.
</summary>
</member>
<member name="M:Cryville.Audio.Source.Libav.LibavException.#ctor">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Source.Libav.LibavException.#ctor(System.String)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Source.Libav.LibavException.#ctor(System.String,System.Exception)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Source.Libav.LibavException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<inheritdoc />
</member>
</members>
</doc>

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: efcc1363031f00e48bcf23b46c092deb
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,145 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Cryville.Audio.Source.Libav</name>
</assembly>
<members>
<member name="T:Cryville.Audio.Source.Libav.LibavFileAudioSource">
<summary>
一个使用 Libav 解流并解码音频文件的 <see cref="T:Cryville.Audio.AudioStream" />
</summary>
</member>
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.#ctor(System.String)">
<summary>
创建一个 <see cref="T:Cryville.Audio.Source.Libav.LibavFileAudioSource" /> 类的实例并加载指定的 <paramref name="file" />
</summary>
<param name="file">音频文件。</param>
</member>
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.Disposed">
<summary>
该音频流是否已被释放。
</summary>
</member>
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.Dispose(System.Boolean)">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.EndOfData">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.BestStreamIndex">
<summary>
最佳音频流的索引。
</summary>
</member>
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.Streams">
<summary>
所有音频流的索引集。
</summary>
</member>
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.SelectStream">
<summary>
选择最佳音频流作为音频源。
</summary>
<exception cref="T:System.InvalidOperationException">已选择音频流。</exception>
<remarks>
<para>
该方法只能在 <see cref="M:Cryville.Audio.AudioStream.SetFormat(Cryville.Audio.WaveFormat,System.Int32)" /> 被调用前调用,后者会在设置 <see cref="P:Cryville.Audio.AudioClient.Source" /> 时被调用。
</para>
</remarks>
</member>
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.SelectStream(System.Int32)">
<summary>
选择一个音频流作为音频源。
</summary>
<param name="index">音频流的索引。</param>
<exception cref="T:System.InvalidOperationException">已选择音频流。</exception>
<remarks>
<para>
该方法只能在 <see cref="M:Cryville.Audio.AudioStream.SetFormat(Cryville.Audio.WaveFormat,System.Int32)" /> 被调用前调用,后者会在设置 <see cref="P:Cryville.Audio.AudioClient.Source" /> 时被调用。
</para>
</remarks>
</member>
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.GetStreamDuration(System.Int32)">
<summary>
获取一个流或当前文件的时长。
</summary>
<param name="streamId">
流索引。如果指定 <c>-1</c> 则返回文件的时长。
</param>
<returns>时长(秒)。</returns>
</member>
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.IsFormatSupported(Cryville.Audio.WaveFormat)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.OnSetFormat">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.Read(System.Byte[],System.Int32,System.Int32)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.Seek(System.Int64,System.IO.SeekOrigin)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.SeekTime(System.Double,System.IO.SeekOrigin)">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.CanRead">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.CanSeek">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.CanWrite">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.Length">
<inheritdoc />
<remarks>
<para>该属性可能不准确。</para>
</remarks>
</member>
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.Duration">
<inheritdoc />
<remarks>
<para>该属性可能不准确。</para>
</remarks>
</member>
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.Time">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Source.Libav.LibavFileAudioSource.Position">
<inheritdoc />
<remarks>
<para>
该属性在调用 <see cref="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.Seek(System.Int64,System.IO.SeekOrigin)" /> 后可能不准确。
</para>
</remarks>
</member>
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.Flush">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.SetLength(System.Int64)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Source.Libav.LibavFileAudioSource.Write(System.Byte[],System.Int32,System.Int32)">
<inheritdoc />
</member>
<member name="T:Cryville.Audio.Source.Libav.LibavException">
<summary>
Libav 抛出的异常。
</summary>
</member>
<member name="M:Cryville.Audio.Source.Libav.LibavException.#ctor">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Source.Libav.LibavException.#ctor(System.String)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Source.Libav.LibavException.#ctor(System.String,System.Exception)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Source.Libav.LibavException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<inheritdoc />
</member>
</members>
</doc>

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: c6a49174395b6ab4282ba26bdaf5d051
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -23,21 +23,6 @@
The device of the client.
</summary>
</member>
<member name="P:Cryville.Audio.AudioClient.DefaultBufferDuration">
<summary>
The default buffer duration of the client in milliseconds.
</summary>
</member>
<member name="P:Cryville.Audio.AudioClient.MinimumBufferDuration">
<summary>
The minimum buffer duration of the client in milliseconds.
</summary>
</member>
<member name="P:Cryville.Audio.AudioClient.DefaultFormat">
<summary>
The default wave format of the device.
</summary>
</member>
<member name="P:Cryville.Audio.AudioClient.Format">
<summary>
The current wave format of the connection.
@@ -45,13 +30,16 @@
</member>
<member name="P:Cryville.Audio.AudioClient.BufferSize">
<summary>
The buffer size in bytes.
The buffer size in frames.
</summary>
</member>
<member name="P:Cryville.Audio.AudioClient.MaximumLatency">
<summary>
The maximum latency of the connection in milliseconds.
</summary>
<remarks>
<para>May be zero if the API does not provide this value.</para>
</remarks>
</member>
<member name="P:Cryville.Audio.AudioClient.Playing">
<summary>
@@ -78,24 +66,6 @@
The audio source.
</summary>
</member>
<member name="M:Cryville.Audio.AudioClient.IsFormatSupported(Cryville.Audio.WaveFormat,System.Nullable{Cryville.Audio.WaveFormat}@,Cryville.Audio.AudioShareMode)">
<summary>
Gets whether <paramref name="format" /> is supported by the device.
</summary>
<param name="format">The specified wave format.</param>
<param name="suggestion">A wave format suggested by the device. <paramref name="format" /> if it is supported. <see langword="null" /> if no format is supported.</param>
<param name="shareMode">The share mode.</param>
<returns>Whether <paramref name="format" /> is supported.</returns>
</member>
<member name="M:Cryville.Audio.AudioClient.Init(Cryville.Audio.WaveFormat,System.Single,Cryville.Audio.AudioShareMode)">
<summary>
Initialize the client.
</summary>
<param name="format">The wave format.</param>
<param name="bufferDuration">The buffer duration of the connection in milliseconds.</param>
<param name="shareMode">The share mode of the connection.</param>
<remarks>Different operations may occur with different API being used. Please also see the documentations of the implementing classes.</remarks>
</member>
<member name="M:Cryville.Audio.AudioClient.Start">
<summary>
Starts the wave data transmission.
@@ -140,7 +110,7 @@
</member>
<member name="P:Cryville.Audio.AudioStream.BufferSize">
<summary>
The buffer size in bytes.
The buffer size in frames.
</summary>
</member>
<member name="P:Cryville.Audio.AudioStream.EndOfData">
@@ -153,7 +123,7 @@
Sets the wave format and the buffer size of this audio stream.
</summary>
<param name="format">The wave format.</param>
<param name="bufferSize">The buffer size in bytes.</param>
<param name="bufferSize">The buffer size in frames.</param>
<exception cref="T:System.InvalidOperationException">This method has already been called successfully once on the audio stream.</exception>
<exception cref="T:System.NotSupportedException"><paramref name="format" /> is not supported by the audio stream.</exception>
</member>
@@ -206,6 +176,11 @@
The data-flow direction of an audio connection.
</summary>
</member>
<member name="F:Cryville.Audio.DataFlow.None">
<summary>
None.
</summary>
</member>
<member name="F:Cryville.Audio.DataFlow.Out">
<summary>
Data flows from software to hardware.
@@ -233,9 +208,12 @@
</member>
<member name="M:Cryville.Audio.EngineBuilder.Create">
<summary>
Creates a recommended <see cref="T:Cryville.Audio.IAudioDeviceManager" />.
Creates a <see cref="T:Cryville.Audio.IAudioDeviceManager" /> in the <see cref="F:Cryville.Audio.EngineBuilder.Engines" /> list.
</summary>
<returns>A recommended <see cref="T:Cryville.Audio.IAudioDeviceManager" />. <see langword="null" /> if no engine is supported.</returns>
<returns>The first <see cref="T:Cryville.Audio.IAudioDeviceManager" /> that can be successfully created. <see langword="null" /> if no engine is supported.</returns>
<remarks>
<para>Add engines to <see cref="F:Cryville.Audio.EngineBuilder.Engines" /> before calling this method.</para>
</remarks>
</member>
<member name="T:Cryville.Audio.IAudioDevice">
<summary>
@@ -252,10 +230,45 @@
The data-flow direction of the device.
</summary>
</member>
<member name="M:Cryville.Audio.IAudioDevice.Connect">
<member name="P:Cryville.Audio.IAudioDevice.BurstSize">
<summary>
The burst size of the device in frames.
</summary>
</member>
<member name="P:Cryville.Audio.IAudioDevice.MinimumBufferSize">
<summary>
The minimum buffer size of the device in frames.
</summary>
</member>
<member name="P:Cryville.Audio.IAudioDevice.DefaultBufferSize">
<summary>
The default buffer size of the device in frames.
</summary>
</member>
<member name="P:Cryville.Audio.IAudioDevice.DefaultFormat">
<summary>
The default wave format of the device for shared-mode streams.
</summary>
<remarks>
<para>For exclusive-mode streams, call <see cref="M:Cryville.Audio.IAudioDevice.IsFormatSupported(Cryville.Audio.WaveFormat,System.Nullable{Cryville.Audio.WaveFormat}@,Cryville.Audio.AudioShareMode)" /> to determine an eligible format.</para>
</remarks>
</member>
<member name="M:Cryville.Audio.IAudioDevice.IsFormatSupported(Cryville.Audio.WaveFormat,System.Nullable{Cryville.Audio.WaveFormat}@,Cryville.Audio.AudioShareMode)">
<summary>
Gets whether <paramref name="format" /> is supported by the device.
</summary>
<param name="format">The specified wave format.</param>
<param name="suggestion">A wave format suggested by the device. <paramref name="format" /> if it is supported. <see langword="null" /> if no format is supported.</param>
<param name="shareMode">The share mode.</param>
<returns>Whether <paramref name="format" /> is supported.</returns>
</member>
<member name="M:Cryville.Audio.IAudioDevice.Connect(Cryville.Audio.WaveFormat,System.Int32,Cryville.Audio.AudioShareMode)">
<summary>
Connects to the device.
</summary>
<param name="format">The wave format.</param>
<param name="bufferSize">The buffer size of the connection in frames.</param>
<param name="shareMode">The share mode of the connection.</param>
<returns>An <see cref="T:Cryville.Audio.AudioClient" /> for interaction with the device.</returns>
</member>
<member name="T:Cryville.Audio.IAudioDeviceManager">
@@ -278,110 +291,6 @@
</summary>
<param name="dataFlow">The data-flow direction.</param>
</member>
<member name="T:Cryville.Audio.OpenSL.Engine">
<summary>
An <see cref="T:Cryville.Audio.IAudioDeviceManager" /> that interacts with OpenSL ES.
</summary>
</member>
<member name="M:Cryville.Audio.OpenSL.Engine.#ctor">
<summary>
Creates an instance of the <see cref="T:Cryville.Audio.OpenSL.Engine" /> class.
</summary>
</member>
<member name="M:Cryville.Audio.OpenSL.Engine.Finalize">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.OpenSL.Engine.Dispose">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.OpenSL.Engine.Dispose(System.Boolean)">
<summary>
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
</summary>
<param name="disposing">Whether the method is being called by user.</param>
</member>
<member name="M:Cryville.Audio.OpenSL.Engine.GetDefaultDevice(Cryville.Audio.DataFlow)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.OpenSL.Engine.GetDevices(Cryville.Audio.DataFlow)">
<inheritdoc />
</member>
<member name="T:Cryville.Audio.OpenSL.OutputClient">
<summary>
An <see cref="T:Cryville.Audio.AudioClient" /> that interacts with OpenSL ES.
</summary>
</member>
<member name="M:Cryville.Audio.OpenSL.OutputClient.Finalize">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.OpenSL.OutputClient.Dispose(System.Boolean)">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.OpenSL.OutputClient.Device">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.OpenSL.OutputClient.DefaultBufferDuration">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.OpenSL.OutputClient.MinimumBufferDuration">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.OpenSL.OutputClient.DefaultFormat">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.OpenSL.OutputClient.Format">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.OpenSL.OutputClient.BufferSize">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.OpenSL.OutputClient.MaximumLatency">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.OpenSL.OutputClient.Position">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.OpenSL.OutputClient.BufferPosition">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.OpenSL.OutputClient.Init(Cryville.Audio.WaveFormat,System.Single,Cryville.Audio.AudioShareMode)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.OpenSL.OutputClient.IsFormatSupported(Cryville.Audio.WaveFormat,System.Nullable{Cryville.Audio.WaveFormat}@,Cryville.Audio.AudioShareMode)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.OpenSL.OutputClient.Start">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.OpenSL.OutputClient.Pause">
<inheritdoc />
</member>
<member name="T:Cryville.Audio.OpenSL.OutputDevice">
<summary>
An <see cref="T:Cryville.Audio.IAudioDevice" /> that interacts with OpenSL ES.
</summary>
</member>
<member name="M:Cryville.Audio.OpenSL.OutputDevice.Finalize">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.OpenSL.OutputDevice.Dispose">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.OpenSL.OutputDevice.Dispose(System.Boolean)">
<summary>
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
</summary>
<param name="disposing">Whether the method is being called by user.</param>
</member>
<member name="P:Cryville.Audio.OpenSL.OutputDevice.Name">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.OpenSL.OutputDevice.DataFlow">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.OpenSL.OutputDevice.Connect">
<inheritdoc />
</member>
<member name="T:Cryville.Audio.Source.CachedAudioSource">
<summary>
An <see cref="T:Cryville.Audio.AudioStream" /> that caches data for reuse.
@@ -525,135 +434,6 @@
<member name="M:Cryville.Audio.Source.FunctionAudioSource.Write(System.Byte[],System.Int32,System.Int32)">
<inheritdoc />
</member>
<member name="T:Cryville.Audio.Source.LibavFileAudioSource">
<summary>
An <see cref="T:Cryville.Audio.AudioStream" /> that uses Libav to demux and decode audio files.
</summary>
</member>
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.#ctor(System.String)">
<summary>
Creates an instance of the <see cref="T:Cryville.Audio.Source.LibavFileAudioSource" /> class and loads the specified <paramref name="file" />.
</summary>
<param name="file">The audio file.</param>
</member>
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.Disposed">
<summary>
Whether this audio stream has been disposed.
</summary>
</member>
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.Dispose(System.Boolean)">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.EndOfData">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.BestStreamIndex">
<summary>
The index to the best audio stream.
</summary>
</member>
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.Streams">
<summary>
The collection of indices to all audio streams.
</summary>
</member>
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.SelectStream">
<summary>
Selects the best stream as the source.
</summary>
<exception cref="T:System.InvalidOperationException">The stream has been selected.</exception>
<remarks>
<para>This method can only be called before <see cref="M:Cryville.Audio.AudioStream.SetFormat(Cryville.Audio.WaveFormat,System.Int32)" /> is called, which is called while setting <see cref="P:Cryville.Audio.AudioClient.Source" />.</para>
</remarks>
</member>
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.SelectStream(System.Int32)">
<summary>
Selects a stream as the source.
</summary>
<param name="index">The index of the stream.</param>
<exception cref="T:System.InvalidOperationException">The stream has been selected.</exception>
<remarks>
<para>This method can only be called before <see cref="M:Cryville.Audio.AudioStream.SetFormat(Cryville.Audio.WaveFormat,System.Int32)" /> is called, which is called while setting <see cref="P:Cryville.Audio.AudioClient.Source" />.</para>
</remarks>
</member>
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.GetStreamDuration(System.Int32)">
<summary>
Gets the duration of a stream or the file.
</summary>
<param name="streamId">The stream index. The duration of the file is retrieved if <c>-1</c> is specified.</param>
<returns>The duration in seconds.</returns>
</member>
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.IsFormatSupported(Cryville.Audio.WaveFormat)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.OnSetFormat">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.Read(System.Byte[],System.Int32,System.Int32)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.Seek(System.Int64,System.IO.SeekOrigin)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.SeekTime(System.Double,System.IO.SeekOrigin)">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.CanRead">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.CanSeek">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.CanWrite">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.Length">
<inheritdoc />
<remarks>
<para>This property may be inaccurate.</para>
</remarks>
</member>
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.Duration">
<inheritdoc />
<remarks>
<para>This property may be inaccurate.</para>
</remarks>
</member>
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.Time">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.Position">
<inheritdoc />
<remarks>
<para>This property may become inaccurate after <see cref="M:Cryville.Audio.Source.LibavFileAudioSource.Seek(System.Int64,System.IO.SeekOrigin)" /> is called.</para>
</remarks>
</member>
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.Flush">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.SetLength(System.Int64)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.Write(System.Byte[],System.Int32,System.Int32)">
<inheritdoc />
</member>
<member name="T:Cryville.Audio.Source.LibavException">
<summary>
The exception that is thrown by Libav.
</summary>
</member>
<member name="M:Cryville.Audio.Source.LibavException.#ctor">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Source.LibavException.#ctor(System.String)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Source.LibavException.#ctor(System.String,System.Exception)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Source.LibavException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<inheritdoc />
</member>
<member name="T:Cryville.Audio.Source.SimpleSequencerSource">
<summary>
A simple <see cref="T:Cryville.Audio.AudioStream" /> that mixes sequenced audio sources.
@@ -825,99 +605,6 @@
Square wave.
</summary>
</member>
<member name="T:Cryville.Audio.Wasapi.AudioClient">
<summary>
An <see cref="T:Cryville.Audio.AudioClient" /> that interact with Wasapi.
</summary>
</member>
<member name="M:Cryville.Audio.Wasapi.AudioClient.Finalize">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Wasapi.AudioClient.Dispose(System.Boolean)">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Wasapi.AudioClient.Device">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Wasapi.AudioClient.DefaultBufferDuration">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Wasapi.AudioClient.MinimumBufferDuration">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Wasapi.AudioClient.DefaultFormat">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Wasapi.AudioClient.Format">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Wasapi.AudioClient.BufferSize">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Wasapi.AudioClient.MaximumLatency">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Wasapi.AudioClient.Position">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Wasapi.AudioClient.BufferPosition">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Wasapi.AudioClient.IsFormatSupported(Cryville.Audio.WaveFormat,System.Nullable{Cryville.Audio.WaveFormat}@,Cryville.Audio.AudioShareMode)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Wasapi.AudioClient.Init(Cryville.Audio.WaveFormat,System.Single,Cryville.Audio.AudioShareMode)">
<summary>
Initialize the client.
</summary>
<param name="format">The wave format.</param>
<param name="bufferDuration">The buffer duration of the connection. The value is clamped to <see cref="P:Cryville.Audio.Wasapi.AudioClient.MinimumBufferDuration" /> if too small. If <paramref name="shareMode" /> is set to <see cref="F:Cryville.Audio.AudioShareMode.Shared" />, the buffer duration will be determined automatically despite this parameter.</param>
<param name="shareMode">The share mode of the connection.</param>
</member>
<member name="M:Cryville.Audio.Wasapi.AudioClient.Start">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Wasapi.AudioClient.Pause">
<inheritdoc />
</member>
<member name="T:Cryville.Audio.Wasapi.MMDevice">
<summary>
An <see cref="T:Cryville.Audio.IAudioDevice" /> that interacts with Wasapi.
</summary>
</member>
<member name="P:Cryville.Audio.Wasapi.MMDevice.Properties">
<summary>
The properties of the device.
</summary>
</member>
<member name="P:Cryville.Audio.Wasapi.MMDevice.Name">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Wasapi.MMDevice.DataFlow">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Wasapi.MMDevice.Connect">
<inheritdoc />
</member>
<member name="T:Cryville.Audio.Wasapi.MMDeviceEnumerator">
<summary>
An <see cref="T:Cryville.Audio.IAudioDeviceManager" /> that interact with Wasapi.
</summary>
<remarks>
<c>Cryville.Audio.WasapiWrapper.dll</c> is required.
</remarks>
</member>
<member name="M:Cryville.Audio.Wasapi.MMDeviceEnumerator.#ctor">
<summary>
Creates an instance of the <see cref="T:Cryville.Audio.Wasapi.MMDeviceEnumerator" /> class.
</summary>
</member>
<member name="M:Cryville.Audio.Wasapi.MMDeviceEnumerator.GetDevices(Cryville.Audio.DataFlow)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Wasapi.MMDeviceEnumerator.GetDefaultDevice(Cryville.Audio.DataFlow)">
<inheritdoc />
</member>
<member name="T:Cryville.Audio.WaveFormat">
<summary>
The wave format.
@@ -930,7 +617,7 @@
</member>
<member name="P:Cryville.Audio.WaveFormat.SampleRate">
<summary>
The sample rate (samples per second.)
The sample rate (samples per channel per second, i.e. frames per second.)
</summary>
</member>
<member name="P:Cryville.Audio.WaveFormat.SampleFormat">
@@ -943,6 +630,11 @@
Bit count per sample.
</summary>
</member>
<member name="P:Cryville.Audio.WaveFormat.FrameSize">
<summary>
Bytes per frame.
</summary>
</member>
<member name="P:Cryville.Audio.WaveFormat.BytesPerSecond">
<summary>
Bytes per second.
@@ -1019,109 +711,5 @@
IEEE 754 double precision floating-point sample format.
</summary>
</member>
<member name="T:Cryville.Audio.WinMM.WaveOutClient">
<summary>
An <see cref="T:Cryville.Audio.AudioClient" /> that interacts with WinMM.
</summary>
</member>
<member name="M:Cryville.Audio.WinMM.WaveOutClient.Finalize">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.WinMM.WaveOutClient.Dispose(System.Boolean)">
<summary>
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
</summary>
<param name="disposing">Whether the method is being called by user.</param>
</member>
<member name="P:Cryville.Audio.WinMM.WaveOutClient.Device">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.WinMM.WaveOutClient.DefaultBufferDuration">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.WinMM.WaveOutClient.MinimumBufferDuration">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.WinMM.WaveOutClient.DefaultFormat">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.WinMM.WaveOutClient.Format">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.WinMM.WaveOutClient.BufferSize">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.WinMM.WaveOutClient.MaximumLatency">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.WinMM.WaveOutClient.Position">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.WinMM.WaveOutClient.BufferPosition">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.WinMM.WaveOutClient.Init(Cryville.Audio.WaveFormat,System.Single,Cryville.Audio.AudioShareMode)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.WinMM.WaveOutClient.IsFormatSupported(Cryville.Audio.WaveFormat,System.Nullable{Cryville.Audio.WaveFormat}@,Cryville.Audio.AudioShareMode)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.WinMM.WaveOutClient.Start">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.WinMM.WaveOutClient.Pause">
<inheritdoc />
</member>
<member name="T:Cryville.Audio.WinMM.WaveOutDevice">
<summary>
An <see cref="T:Cryville.Audio.IAudioDevice" /> that interacts with WinMM.
</summary>
</member>
<member name="M:Cryville.Audio.WinMM.WaveOutDevice.Dispose">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.WinMM.WaveOutDevice.Dispose(System.Boolean)">
<summary>
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
</summary>
<param name="disposing">Whether the method is being called by user.</param>
</member>
<member name="P:Cryville.Audio.WinMM.WaveOutDevice.Name">
<summary>
The friendly name of the device.
</summary>
<remarks>Due to technical reason, this field is truncated if it has more than 31 characters.</remarks>
</member>
<member name="P:Cryville.Audio.WinMM.WaveOutDevice.DataFlow">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.WinMM.WaveOutDevice.Connect">
<inheritdoc />
</member>
<member name="T:Cryville.Audio.WinMM.WaveDeviceManager">
<summary>
An <see cref="T:Cryville.Audio.IAudioDeviceManager" /> that interacts with WinMM.
</summary>
</member>
<member name="M:Cryville.Audio.WinMM.WaveDeviceManager.#ctor">
<summary>
Creates an instance of the <see cref="T:Cryville.Audio.WinMM.WaveDeviceManager" /> class.
</summary>
</member>
<member name="M:Cryville.Audio.WinMM.WaveDeviceManager.Dispose">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.WinMM.WaveDeviceManager.Dispose(System.Boolean)">
<summary>
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
</summary>
<param name="disposing">Whether the method is being called by user.</param>
</member>
<member name="M:Cryville.Audio.WinMM.WaveDeviceManager.GetDefaultDevice(Cryville.Audio.DataFlow)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.WinMM.WaveDeviceManager.GetDevices(Cryville.Audio.DataFlow)">
<inheritdoc />
</member>
</members>
</doc>

View File

@@ -23,21 +23,6 @@
客户端的设备。
</summary>
</member>
<member name="P:Cryville.Audio.AudioClient.DefaultBufferDuration">
<summary>
客户端的默认缓存时长(毫秒)。
</summary>
</member>
<member name="P:Cryville.Audio.AudioClient.MinimumBufferDuration">
<summary>
客户端的最小缓存时长(毫秒)。
</summary>
</member>
<member name="P:Cryville.Audio.AudioClient.DefaultFormat">
<summary>
设备的默认波形格式。
</summary>
</member>
<member name="P:Cryville.Audio.AudioClient.Format">
<summary>
当前连接使用的波形格式。
@@ -45,13 +30,16 @@
</member>
<member name="P:Cryville.Audio.AudioClient.BufferSize">
<summary>
缓存大小(字节)。
缓存大小()。
</summary>
</member>
<member name="P:Cryville.Audio.AudioClient.MaximumLatency">
<summary>
连接的最大延迟(毫秒)。
</summary>
<remarks>
<para>如果 API 不提供最大延迟,则该值为 0。</para>
</remarks>
</member>
<member name="P:Cryville.Audio.AudioClient.Playing">
<summary>
@@ -78,28 +66,6 @@
音频源。
</summary>
</member>
<member name="M:Cryville.Audio.AudioClient.IsFormatSupported(Cryville.Audio.WaveFormat,System.Nullable{Cryville.Audio.WaveFormat}@,Cryville.Audio.AudioShareMode)">
<summary>
获取设备是否支持 <paramref name="format" />
</summary>
<param name="format">指定的波形格式。</param>
<param name="suggestion">
设备建议的波形格式。如果设备支持 <paramref name="format" /> 则直接返回该参数。如果设备不支持任何格式则返回 <see langword="null" />
</param>
<param name="shareMode">共享模式。</param>
<returns>
设备是否支持 <paramref name="format" />
</returns>
</member>
<member name="M:Cryville.Audio.AudioClient.Init(Cryville.Audio.WaveFormat,System.Single,Cryville.Audio.AudioShareMode)">
<summary>
初始化客户端。
</summary>
<param name="format">波形格式。</param>
<param name="bufferDuration">连接的缓存时长(毫秒)。</param>
<param name="shareMode">连接的共享模式。</param>
<remarks>不同 API 可能会执行不同的操作。参见实现类的文档。</remarks>
</member>
<member name="M:Cryville.Audio.AudioClient.Start">
<summary>
开始传输波形数据。
@@ -144,7 +110,7 @@
</member>
<member name="P:Cryville.Audio.AudioStream.BufferSize">
<summary>
缓存大小(字节)。
缓存大小()。
</summary>
</member>
<member name="P:Cryville.Audio.AudioStream.EndOfData">
@@ -157,7 +123,7 @@
设置音频流的波形格式和缓存大小。
</summary>
<param name="format">波形格式。</param>
<param name="bufferSize">缓存大小(字节)。</param>
<param name="bufferSize">缓存大小()。</param>
<exception cref="T:System.InvalidOperationException">该方法在当前音频流上已被成功调用过一次。</exception>
<exception cref="T:System.NotSupportedException">
音频流不支持 <paramref name="format" />
@@ -218,6 +184,11 @@
音频连接的数据流向。
</summary>
</member>
<member name="F:Cryville.Audio.DataFlow.None">
<summary>
无。
</summary>
</member>
<member name="F:Cryville.Audio.DataFlow.Out">
<summary>
数据从软件流向硬件。
@@ -245,11 +216,16 @@
</member>
<member name="M:Cryville.Audio.EngineBuilder.Create">
<summary>
创建一个推荐的 <see cref="T:Cryville.Audio.IAudioDeviceManager" />
创建 <see cref="F:Cryville.Audio.EngineBuilder.Engines" /> 列表中的一个 <see cref="T:Cryville.Audio.IAudioDeviceManager" />
</summary>
<returns>
一个推荐<see cref="T:Cryville.Audio.IAudioDeviceManager" />。如果没有支持的引擎则返回 <see langword="null" />
一个能够被成功创建<see cref="T:Cryville.Audio.IAudioDeviceManager" />。如果没有支持的引擎则返回 <see langword="null" />
</returns>
<remarks>
<para>
调用该方法前,先在 <see cref="F:Cryville.Audio.EngineBuilder.Engines" /> 中添加引擎。
</para>
</remarks>
</member>
<member name="T:Cryville.Audio.IAudioDevice">
<summary>
@@ -266,10 +242,51 @@
设备的数据流向。
</summary>
</member>
<member name="M:Cryville.Audio.IAudioDevice.Connect">
<member name="P:Cryville.Audio.IAudioDevice.BurstSize">
<summary>
设备的脉冲大小(帧)。
</summary>
</member>
<member name="P:Cryville.Audio.IAudioDevice.MinimumBufferDuration">
<summary>
设备的最小缓存大小(帧)。
</summary>
</member>
<member name="P:Cryville.Audio.IAudioDevice.DefaultBufferDuration">
<summary>
设备的默认缓存大小(帧)。
</summary>
</member>
<member name="P:Cryville.Audio.IAudioDevice.DefaultFormat">
<summary>
设备在共享模式下的默认波形格式。
</summary>
<remarks>
<para>
对于独占模式的流,调用 <see cref="M:Cryville.Audio.IAudioDevice.IsFormatSupported(Cryville.Audio.WaveFormat,System.Nullable{Cryville.Audio.WaveFormat}@,Cryville.Audio.AudioShareMode)" /> 以确定可用的格式。
</para>
</remarks>
</member>
<member name="M:Cryville.Audio.IAudioDevice.IsFormatSupported(Cryville.Audio.WaveFormat,System.Nullable{Cryville.Audio.WaveFormat}@,Cryville.Audio.AudioShareMode)">
<summary>
获取设备是否支持 <paramref name="format" />
</summary>
<param name="format">指定的波形格式。</param>
<param name="suggestion">
设备建议的波形格式。如果设备支持 <paramref name="format" /> 则直接返回该参数。如果设备不支持任何格式则返回 <see langword="null" />
</param>
<param name="shareMode">共享模式。</param>
<returns>
设备是否支持 <paramref name="format" />
</returns>
</member>
<member name="M:Cryville.Audio.IAudioDevice.Connect(Cryville.Audio.WaveFormat,System.Int32,Cryville.Audio.AudioShareMode)">
<summary>
连接到设备。
</summary>
<param name="format">波形格式。</param>
<param name="bufferSize">连接的缓存大小(帧)。</param>
<param name="shareMode">连接的共享模式。</param>
<returns>
一个用于与设备交互的 <see cref="T:Cryville.Audio.AudioClient" />
</returns>
@@ -294,110 +311,6 @@
</summary>
<param name="dataFlow">数据流向。</param>
</member>
<member name="T:Cryville.Audio.OpenSL.Engine">
<summary>
一个与 OpenSL ES 交互的 <see cref="T:Cryville.Audio.IAudioDeviceManager" />
</summary>
</member>
<member name="M:Cryville.Audio.OpenSL.Engine.#ctor">
<summary>
创建一个 <see cref="T:Cryville.Audio.OpenSL.Engine" /> 类的实例。
</summary>
</member>
<member name="M:Cryville.Audio.OpenSL.Engine.Finalize">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.OpenSL.Engine.Dispose">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.OpenSL.Engine.Dispose(System.Boolean)">
<summary>
执行与释放或重置非托管资源关联的应用程序定义的任务。
</summary>
<param name="disposing">该方法是否由用户调用。</param>
</member>
<member name="M:Cryville.Audio.OpenSL.Engine.GetDefaultDevice(Cryville.Audio.DataFlow)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.OpenSL.Engine.GetDevices(Cryville.Audio.DataFlow)">
<inheritdoc />
</member>
<member name="T:Cryville.Audio.OpenSL.OutputClient">
<summary>
一个与 OpenSL ES 交互的 <see cref="T:Cryville.Audio.AudioClient" />
</summary>
</member>
<member name="M:Cryville.Audio.OpenSL.OutputClient.Finalize">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.OpenSL.OutputClient.Dispose(System.Boolean)">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.OpenSL.OutputClient.Device">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.OpenSL.OutputClient.DefaultBufferDuration">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.OpenSL.OutputClient.MinimumBufferDuration">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.OpenSL.OutputClient.DefaultFormat">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.OpenSL.OutputClient.Format">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.OpenSL.OutputClient.BufferSize">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.OpenSL.OutputClient.MaximumLatency">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.OpenSL.OutputClient.Position">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.OpenSL.OutputClient.BufferPosition">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.OpenSL.OutputClient.Init(Cryville.Audio.WaveFormat,System.Single,Cryville.Audio.AudioShareMode)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.OpenSL.OutputClient.IsFormatSupported(Cryville.Audio.WaveFormat,System.Nullable{Cryville.Audio.WaveFormat}@,Cryville.Audio.AudioShareMode)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.OpenSL.OutputClient.Start">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.OpenSL.OutputClient.Pause">
<inheritdoc />
</member>
<member name="T:Cryville.Audio.OpenSL.OutputDevice">
<summary>
一个与 OpenSL ES 交互的 <see cref="T:Cryville.Audio.IAudioDevice" />
</summary>
</member>
<member name="M:Cryville.Audio.OpenSL.OutputDevice.Finalize">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.OpenSL.OutputDevice.Dispose">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.OpenSL.OutputDevice.Dispose(System.Boolean)">
<summary>
执行与释放或重置非托管资源关联的应用程序定义的任务。
</summary>
<param name="disposing">该方法是否由用户调用。</param>
</member>
<member name="P:Cryville.Audio.OpenSL.OutputDevice.Name">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.OpenSL.OutputDevice.DataFlow">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.OpenSL.OutputDevice.Connect">
<inheritdoc />
</member>
<member name="T:Cryville.Audio.Source.CachedAudioSource">
<summary>
一个缓存数据并对其进行复用的 <see cref="T:Cryville.Audio.AudioStream" />
@@ -547,143 +460,6 @@
<member name="M:Cryville.Audio.Source.FunctionAudioSource.Write(System.Byte[],System.Int32,System.Int32)">
<inheritdoc />
</member>
<member name="T:Cryville.Audio.Source.LibavFileAudioSource">
<summary>
一个使用 Libav 解流并解码音频文件的 <see cref="T:Cryville.Audio.AudioStream" />
</summary>
</member>
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.#ctor(System.String)">
<summary>
创建一个 <see cref="T:Cryville.Audio.Source.LibavFileAudioSource" /> 类的实例并加载指定的 <paramref name="file" />
</summary>
<param name="file">音频文件。</param>
</member>
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.Disposed">
<summary>
该音频流是否已被释放。
</summary>
</member>
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.Dispose(System.Boolean)">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.EndOfData">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.BestStreamIndex">
<summary>
最佳音频流的索引。
</summary>
</member>
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.Streams">
<summary>
所有音频流的索引集。
</summary>
</member>
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.SelectStream">
<summary>
选择最佳音频流作为音频源。
</summary>
<exception cref="T:System.InvalidOperationException">已选择音频流。</exception>
<remarks>
<para>
该方法只能在 <see cref="M:Cryville.Audio.AudioStream.SetFormat(Cryville.Audio.WaveFormat,System.Int32)" /> 被调用前调用,后者会在设置 <see cref="P:Cryville.Audio.AudioClient.Source" /> 时被调用。
</para>
</remarks>
</member>
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.SelectStream(System.Int32)">
<summary>
选择一个音频流作为音频源。
</summary>
<param name="index">音频流的索引。</param>
<exception cref="T:System.InvalidOperationException">已选择音频流。</exception>
<remarks>
<para>
该方法只能在 <see cref="M:Cryville.Audio.AudioStream.SetFormat(Cryville.Audio.WaveFormat,System.Int32)" /> 被调用前调用,后者会在设置 <see cref="P:Cryville.Audio.AudioClient.Source" /> 时被调用。
</para>
</remarks>
</member>
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.GetStreamDuration(System.Int32)">
<summary>
获取一个流或当前文件的时长。
</summary>
<param name="streamId">
流索引。如果指定 <c>-1</c> 则返回文件的时长。
</param>
<returns>时长(秒)。</returns>
</member>
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.IsFormatSupported(Cryville.Audio.WaveFormat)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.OnSetFormat">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.Read(System.Byte[],System.Int32,System.Int32)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.Seek(System.Int64,System.IO.SeekOrigin)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.SeekTime(System.Double,System.IO.SeekOrigin)">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.CanRead">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.CanSeek">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.CanWrite">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.Length">
<inheritdoc />
<remarks>
<para>该属性可能不准确。</para>
</remarks>
</member>
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.Duration">
<inheritdoc />
<remarks>
<para>该属性可能不准确。</para>
</remarks>
</member>
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.Time">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Source.LibavFileAudioSource.Position">
<inheritdoc />
<remarks>
<para>
该属性在调用 <see cref="M:Cryville.Audio.Source.LibavFileAudioSource.Seek(System.Int64,System.IO.SeekOrigin)" /> 后可能不准确。
</para>
</remarks>
</member>
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.Flush">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.SetLength(System.Int64)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Source.LibavFileAudioSource.Write(System.Byte[],System.Int32,System.Int32)">
<inheritdoc />
</member>
<member name="T:Cryville.Audio.Source.LibavException">
<summary>
Libav 抛出的异常。
</summary>
</member>
<member name="M:Cryville.Audio.Source.LibavException.#ctor">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Source.LibavException.#ctor(System.String)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Source.LibavException.#ctor(System.String,System.Exception)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Source.LibavException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<inheritdoc />
</member>
<member name="T:Cryville.Audio.Source.SimpleSequencerSource">
<summary>
一个对序列中的音频源进行混音的简单 <see cref="T:Cryville.Audio.AudioStream" />
@@ -881,101 +657,6 @@
方波。
</summary>
</member>
<member name="T:Cryville.Audio.Wasapi.AudioClient">
<summary>
一个与 Wasapi 交互的 <see cref="T:Cryville.Audio.AudioClient" />
</summary>
</member>
<member name="M:Cryville.Audio.Wasapi.AudioClient.Finalize">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Wasapi.AudioClient.Dispose(System.Boolean)">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Wasapi.AudioClient.Device">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Wasapi.AudioClient.DefaultBufferDuration">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Wasapi.AudioClient.MinimumBufferDuration">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Wasapi.AudioClient.DefaultFormat">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Wasapi.AudioClient.Format">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Wasapi.AudioClient.BufferSize">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Wasapi.AudioClient.MaximumLatency">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Wasapi.AudioClient.Position">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Wasapi.AudioClient.BufferPosition">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Wasapi.AudioClient.IsFormatSupported(Cryville.Audio.WaveFormat,System.Nullable{Cryville.Audio.WaveFormat}@,Cryville.Audio.AudioShareMode)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Wasapi.AudioClient.Init(Cryville.Audio.WaveFormat,System.Single,Cryville.Audio.AudioShareMode)">
<summary>
初始化客户端。
</summary>
<param name="format">波形格式。</param>
<param name="bufferDuration">
连接的缓存时长(毫秒)。如果该值太小,则其将被限制到 <see cref="P:Cryville.Audio.Wasapi.AudioClient.MinimumBufferDuration" />。如果 <paramref name="shareMode" /><see cref="F:Cryville.Audio.AudioShareMode.Shared" />,缓存时长将自动决定,且该参数无效。
</param>
<param name="shareMode">连接的共享模式。</param>
</member>
<member name="M:Cryville.Audio.Wasapi.AudioClient.Start">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Wasapi.AudioClient.Pause">
<inheritdoc />
</member>
<member name="T:Cryville.Audio.Wasapi.MMDevice">
<summary>
一个与 Wasapi 交互的 <see cref="T:Cryville.Audio.IAudioDevice" />
</summary>
</member>
<member name="P:Cryville.Audio.Wasapi.MMDevice.Properties">
<summary>
设备的属性。
</summary>
</member>
<member name="P:Cryville.Audio.Wasapi.MMDevice.Name">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Wasapi.MMDevice.DataFlow">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Wasapi.MMDevice.Connect">
<inheritdoc />
</member>
<member name="T:Cryville.Audio.Wasapi.MMDeviceEnumerator">
<summary>
一个与 Wasapi 交互的 <see cref="T:Cryville.Audio.IAudioDeviceManager" />
</summary>
<remarks>
需要 <c>Cryville.Audio.WasapiWrapper.dll</c>
</remarks>
</member>
<member name="M:Cryville.Audio.Wasapi.MMDeviceEnumerator.#ctor">
<summary>
创建一个 <see cref="T:Cryville.Audio.Wasapi.MMDeviceEnumerator" /> 类的实例。
</summary>
</member>
<member name="M:Cryville.Audio.Wasapi.MMDeviceEnumerator.GetDevices(Cryville.Audio.DataFlow)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Wasapi.MMDeviceEnumerator.GetDefaultDevice(Cryville.Audio.DataFlow)">
<inheritdoc />
</member>
<member name="T:Cryville.Audio.WaveFormat">
<summary>
波形格式。
@@ -988,7 +669,7 @@
</member>
<member name="P:Cryville.Audio.WaveFormat.SampleRate">
<summary>
采样率(每秒样本数)。
采样率(每秒每频道样本数,即每秒帧数)。
</summary>
</member>
<member name="P:Cryville.Audio.WaveFormat.SampleFormat">
@@ -1001,6 +682,11 @@
每样本位数。
</summary>
</member>
<member name="P:Cryville.Audio.WaveFormat.FrameSize">
<summary>
每帧字节数。
</summary>
</member>
<member name="P:Cryville.Audio.WaveFormat.BytesPerSecond">
<summary>
每秒字节数。
@@ -1077,109 +763,5 @@
IEEE 754 双精度浮点型样本格式。
</summary>
</member>
<member name="T:Cryville.Audio.WinMM.WaveOutClient">
<summary>
一个与 WinMM 交互的 <see cref="T:Cryville.Audio.AudioClient" />
</summary>
</member>
<member name="M:Cryville.Audio.WinMM.WaveOutClient.Finalize">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.WinMM.WaveOutClient.Dispose(System.Boolean)">
<summary>
执行与释放或重置非托管资源关联的应用程序定义的任务。
</summary>
<param name="disposing">该方法是否由用户调用。</param>
</member>
<member name="P:Cryville.Audio.WinMM.WaveOutClient.Device">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.WinMM.WaveOutClient.DefaultBufferDuration">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.WinMM.WaveOutClient.MinimumBufferDuration">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.WinMM.WaveOutClient.DefaultFormat">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.WinMM.WaveOutClient.Format">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.WinMM.WaveOutClient.BufferSize">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.WinMM.WaveOutClient.MaximumLatency">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.WinMM.WaveOutClient.Position">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.WinMM.WaveOutClient.BufferPosition">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.WinMM.WaveOutClient.Init(Cryville.Audio.WaveFormat,System.Single,Cryville.Audio.AudioShareMode)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.WinMM.WaveOutClient.IsFormatSupported(Cryville.Audio.WaveFormat,System.Nullable{Cryville.Audio.WaveFormat}@,Cryville.Audio.AudioShareMode)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.WinMM.WaveOutClient.Start">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.WinMM.WaveOutClient.Pause">
<inheritdoc />
</member>
<member name="T:Cryville.Audio.WinMM.WaveOutDevice">
<summary>
一个与 WinMM 交互的 <see cref="T:Cryville.Audio.IAudioDevice" />
</summary>
</member>
<member name="M:Cryville.Audio.WinMM.WaveOutDevice.Dispose">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.WinMM.WaveOutDevice.Dispose(System.Boolean)">
<summary>
执行与释放或重置非托管资源关联的应用程序定义的任务。
</summary>
<param name="disposing">该方法是否由用户调用。</param>
</member>
<member name="P:Cryville.Audio.WinMM.WaveOutDevice.Name">
<summary>
设备的通俗名称。
</summary>
<remarks>由于技术原因,该属性最大字符数限制为 31。</remarks>
</member>
<member name="P:Cryville.Audio.WinMM.WaveOutDevice.DataFlow">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.WinMM.WaveOutDevice.Connect">
<inheritdoc />
</member>
<member name="T:Cryville.Audio.WinMM.WaveDeviceManager">
<summary>
一个与 WinMM 交互的 <see cref="T:Cryville.Audio.IAudioDeviceManager" />
</summary>
</member>
<member name="M:Cryville.Audio.WinMM.WaveDeviceManager.#ctor">
<summary>
创建一个 <see cref="T:Cryville.Audio.WinMM.WaveDeviceManager" /> 类的实例。
</summary>
</member>
<member name="M:Cryville.Audio.WinMM.WaveDeviceManager.Dispose">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.WinMM.WaveDeviceManager.Dispose(System.Boolean)">
<summary>
执行与释放或重置非托管资源关联的应用程序定义的任务。
</summary>
<param name="disposing">该方法是否由用户调用。</param>
</member>
<member name="M:Cryville.Audio.WinMM.WaveDeviceManager.GetDefaultDevice(Cryville.Audio.DataFlow)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.WinMM.WaveDeviceManager.GetDevices(Cryville.Audio.DataFlow)">
<inheritdoc />
</member>
</members>
</doc>

Binary file not shown.

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 671e2cc4c4fd8174c943970b5968263f
guid: 5ab893d5d77528b4e99b869dc7d253c7
PluginImporter:
externalObjects: {}
serializedVersion: 2
@@ -18,8 +18,8 @@ PluginImporter:
settings:
Exclude Android: 1
Exclude Editor: 0
Exclude Linux64: 0
Exclude OSXUniversal: 0
Exclude Linux64: 1
Exclude OSXUniversal: 1
Exclude Win: 0
Exclude Win64: 0
- first:
@@ -40,17 +40,17 @@ PluginImporter:
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
OS: Windows
- first:
Standalone: Linux64
second:
enabled: 1
enabled: 0
settings:
CPU: AnyCPU
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 1
enabled: 0
settings:
CPU: None
- first:
@@ -65,6 +65,12 @@ PluginImporter:
enabled: 1
settings:
CPU: x86_64
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,96 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Cryville.Audio.Wasapi</name>
</assembly>
<members>
<member name="T:Cryville.Audio.Wasapi.AudioClientWrapper">
<summary>
An <see cref="T:Cryville.Audio.AudioClient" /> that interact with Wasapi.
</summary>
</member>
<member name="M:Cryville.Audio.Wasapi.AudioClientWrapper.Finalize">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Wasapi.AudioClientWrapper.Dispose(System.Boolean)">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Wasapi.AudioClientWrapper.Device">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Wasapi.AudioClientWrapper.Format">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Wasapi.AudioClientWrapper.BufferSize">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Wasapi.AudioClientWrapper.MaximumLatency">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Wasapi.AudioClientWrapper.Position">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Wasapi.AudioClientWrapper.BufferPosition">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Wasapi.AudioClientWrapper.Start">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Wasapi.AudioClientWrapper.Pause">
<inheritdoc />
</member>
<member name="T:Cryville.Audio.Wasapi.MMDeviceEnumeratorWrapper">
<summary>
An <see cref="T:Cryville.Audio.IAudioDeviceManager" /> that interact with Wasapi.
</summary>
</member>
<member name="M:Cryville.Audio.Wasapi.MMDeviceEnumeratorWrapper.#ctor">
<summary>
Creates an instance of the <see cref="T:Cryville.Audio.Wasapi.MMDeviceEnumeratorWrapper" /> class.
</summary>
</member>
<member name="M:Cryville.Audio.Wasapi.MMDeviceEnumeratorWrapper.GetDevices(Cryville.Audio.DataFlow)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Wasapi.MMDeviceEnumeratorWrapper.GetDefaultDevice(Cryville.Audio.DataFlow)">
<inheritdoc />
</member>
<member name="T:Cryville.Audio.Wasapi.MMDeviceWrapper">
<summary>
An <see cref="T:Cryville.Audio.IAudioDevice" /> that interacts with Wasapi.
</summary>
</member>
<member name="M:Cryville.Audio.Wasapi.MMDeviceWrapper.Dispose(System.Boolean)">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Wasapi.MMDeviceWrapper.Properties">
<summary>
The properties of the device.
</summary>
</member>
<member name="P:Cryville.Audio.Wasapi.MMDeviceWrapper.Name">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Wasapi.MMDeviceWrapper.DataFlow">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Wasapi.MMDeviceWrapper.BurstSize">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Wasapi.MMDeviceWrapper.MinimumBufferSize">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Wasapi.MMDeviceWrapper.DefaultBufferSize">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.Wasapi.MMDeviceWrapper.DefaultFormat">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Wasapi.MMDeviceWrapper.IsFormatSupported(Cryville.Audio.WaveFormat,System.Nullable{Cryville.Audio.WaveFormat}@,Cryville.Audio.AudioShareMode)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.Wasapi.MMDeviceWrapper.Connect(Cryville.Audio.WaveFormat,System.Int32,Cryville.Audio.AudioShareMode)">
<inheritdoc />
</member>
</members>
</doc>

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 3a357bb0bbd7eed4eb2b4e2065d0c379
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,76 @@
fileFormatVersion: 2
guid: 49202906464ea5c448327df934d2a0ac
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
: Any
second:
enabled: 0
settings:
Exclude Android: 1
Exclude Editor: 0
Exclude Linux64: 1
Exclude OSXUniversal: 1
Exclude Win: 0
Exclude Win64: 0
- first:
Android: Android
second:
enabled: 0
settings:
CPU: ARMv7
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 1
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: Windows
- first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 1
settings:
CPU: x86
- first:
Standalone: Win64
second:
enabled: 1
settings:
CPU: x86_64
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,142 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Cryville.Audio.WaveformAudio</name>
</assembly>
<members>
<member name="T:Microsoft.Windows.MmSysCom.MultimediaSystemException">
<summary>
Exception occurring in Multimedia System.
</summary>
</member>
<member name="M:Microsoft.Windows.MmSysCom.MultimediaSystemException.#ctor">
<summary>
Creates an instance of the <see cref="T:Microsoft.Windows.MmSysCom.MultimediaSystemException" /> class.
</summary>
</member>
<member name="M:Microsoft.Windows.MmSysCom.MultimediaSystemException.#ctor(System.String)">
<summary>
Creates an instance of the <see cref="T:Microsoft.Windows.MmSysCom.MultimediaSystemException" /> class.
<param name="message">The error message that explains the reason for the exception.</param>
</summary>
</member>
<member name="M:Microsoft.Windows.MmSysCom.MultimediaSystemException.#ctor(System.String,System.Exception)">
<summary>
Creates an instance of the <see cref="T:Microsoft.Windows.MmSysCom.MultimediaSystemException" /> class.
</summary>
<param name="message">The error message that explains the reason for the exception.</param>
<param name="innerException">The exception that is the cause of the current exception.</param>
</member>
<member name="M:Microsoft.Windows.MmSysCom.MultimediaSystemException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Creates an instance of the <see cref="T:Microsoft.Windows.MmSysCom.MultimediaSystemException" /> class with serialized data.
</summary>
<param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo" /> that holds the serialized object data about the exception being thrown.</param>
<param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext" /> that contains contextual information about the source or destination.</param>
</member>
<member name="T:Cryville.Audio.WaveformAudio.WaveOutClient">
<summary>
An <see cref="T:Cryville.Audio.AudioClient" /> that interacts with WinMM.
</summary>
</member>
<member name="M:Cryville.Audio.WaveformAudio.WaveOutClient.Finalize">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.WaveformAudio.WaveOutClient.Dispose(System.Boolean)">
<summary>
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
</summary>
<param name="disposing">Whether the method is being called by user.</param>
</member>
<member name="P:Cryville.Audio.WaveformAudio.WaveOutClient.Device">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.WaveformAudio.WaveOutClient.Format">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.WaveformAudio.WaveOutClient.BufferSize">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.WaveformAudio.WaveOutClient.MaximumLatency">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.WaveformAudio.WaveOutClient.Position">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.WaveformAudio.WaveOutClient.BufferPosition">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.WaveformAudio.WaveOutClient.Start">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.WaveformAudio.WaveOutClient.Pause">
<inheritdoc />
</member>
<member name="T:Cryville.Audio.WaveformAudio.WaveOutDevice">
<summary>
An <see cref="T:Cryville.Audio.IAudioDevice" /> that interacts with WinMM.
</summary>
</member>
<member name="M:Cryville.Audio.WaveformAudio.WaveOutDevice.Dispose">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.WaveformAudio.WaveOutDevice.Dispose(System.Boolean)">
<summary>
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
</summary>
<param name="disposing">Whether the method is being called by user.</param>
</member>
<member name="P:Cryville.Audio.WaveformAudio.WaveOutDevice.Name">
<summary>
The friendly name of the device.
</summary>
<remarks>Due to technical reason, this field is truncated if it has more than 31 characters.</remarks>
</member>
<member name="P:Cryville.Audio.WaveformAudio.WaveOutDevice.DataFlow">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.WaveformAudio.WaveOutDevice.BurstSize">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.WaveformAudio.WaveOutDevice.MinimumBufferSize">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.WaveformAudio.WaveOutDevice.DefaultBufferSize">
<inheritdoc />
</member>
<member name="P:Cryville.Audio.WaveformAudio.WaveOutDevice.DefaultFormat">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.WaveformAudio.WaveOutDevice.IsFormatSupported(Cryville.Audio.WaveFormat,System.Nullable{Cryville.Audio.WaveFormat}@,Cryville.Audio.AudioShareMode)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.WaveformAudio.WaveOutDevice.Connect(Cryville.Audio.WaveFormat,System.Int32,Cryville.Audio.AudioShareMode)">
<inheritdoc />
</member>
<member name="T:Cryville.Audio.WaveformAudio.WaveDeviceManager">
<summary>
An <see cref="T:Cryville.Audio.IAudioDeviceManager" /> that interacts with WinMM.
</summary>
</member>
<member name="M:Cryville.Audio.WaveformAudio.WaveDeviceManager.#ctor">
<summary>
Creates an instance of the <see cref="T:Cryville.Audio.WaveformAudio.WaveDeviceManager" /> class.
</summary>
</member>
<member name="M:Cryville.Audio.WaveformAudio.WaveDeviceManager.Dispose">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.WaveformAudio.WaveDeviceManager.Dispose(System.Boolean)">
<summary>
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
</summary>
<param name="disposing">Whether the method is being called by user.</param>
</member>
<member name="M:Cryville.Audio.WaveformAudio.WaveDeviceManager.GetDefaultDevice(Cryville.Audio.DataFlow)">
<inheritdoc />
</member>
<member name="M:Cryville.Audio.WaveformAudio.WaveDeviceManager.GetDevices(Cryville.Audio.DataFlow)">
<inheritdoc />
</member>
</members>
</doc>

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 03693f94c587a8d4b8d9bc16e9990cf9
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant: