diff --git a/Microsoft.Toolkit.Uwp.Notifications/Toasts/Builder/ToastContentBuilder.cs b/Microsoft.Toolkit.Uwp.Notifications/Toasts/Builder/ToastContentBuilder.cs
index 0850a1b013d..b3d3964dfd4 100644
--- a/Microsoft.Toolkit.Uwp.Notifications/Toasts/Builder/ToastContentBuilder.cs
+++ b/Microsoft.Toolkit.Uwp.Notifications/Toasts/Builder/ToastContentBuilder.cs
@@ -355,25 +355,20 @@ public ToastContentBuilder AddAudio(
             bool? silent = default)
 #endif
         {
-            if (!src.IsFile)
-            {
-                throw new ArgumentException(nameof(src), "Audio Source has to be a file.");
-            }
-
-            Content.Audio = new ToastAudio();
-            Content.Audio.Src = src;
+            var audio = new ToastAudio();
+            audio.Src = src;
 
             if (loop != default)
             {
-                Content.Audio.Loop = loop.Value;
+                audio.Loop = loop.Value;
             }
 
             if (silent != default)
             {
-                Content.Audio.Silent = silent.Value;
+                audio.Silent = silent.Value;
             }
 
-            return this;
+            return AddAudio(audio);
         }
 
         /// <summary>
@@ -383,6 +378,11 @@ public ToastContentBuilder AddAudio(
         /// <returns>The current instance of <see cref="ToastContentBuilder"/></returns>
         public ToastContentBuilder AddAudio(ToastAudio audio)
         {
+            if (audio.Src != null && !audio.Src.IsFile && audio.Src.Scheme != "ms-appx" && audio.Src.Scheme != "ms-winsoundevent")
+            {
+                throw new InvalidOperationException("Audio Source must either be a ms-appx file, absolute file, or ms-winsoundevent.");
+            }
+
             Content.Audio = audio;
             return this;
         }
diff --git a/UnitTests/UnitTests.Notifications.Shared/TestToastContentBuilder.cs b/UnitTests/UnitTests.Notifications.Shared/TestToastContentBuilder.cs
index 21546d2e966..ad35cea5d2a 100644
--- a/UnitTests/UnitTests.Notifications.Shared/TestToastContentBuilder.cs
+++ b/UnitTests/UnitTests.Notifications.Shared/TestToastContentBuilder.cs
@@ -548,6 +548,72 @@ public void AddAudioTest_WithFullArgs_ReturnSelfWithCustomAudioAddedWithAllOptio
             Assert.AreEqual(testToastAudioSilent, builder.Content.Audio.Silent);
         }
 
+        [TestMethod]
+        public void AddAudioTest_WithMsWinSoundEvent_ReturnSelfWithCustomAudioAdded()
+        {
+            // Arrange
+            Uri testAudioUriSrc = new Uri("ms-winsoundevent:Notification.Reminder");
+
+            // Act
+            ToastContentBuilder builder = new ToastContentBuilder();
+            ToastContentBuilder anotherReference = builder.AddAudio(testAudioUriSrc);
+
+            // Assert
+            Assert.AreSame(builder, anotherReference);
+            Assert.AreEqual(testAudioUriSrc.OriginalString, builder.Content.Audio.Src.OriginalString);
+        }
+
+        [TestMethod]
+        public void AddAudioTest_WithMsAppx_ReturnSelfWithCustomAudioAdded()
+        {
+            // Arrange
+            Uri testAudioUriSrc = new Uri("ms-appx:///Assets/Audio.mp3");
+
+            // Act
+            ToastContentBuilder builder = new ToastContentBuilder();
+            ToastContentBuilder anotherReference = builder.AddAudio(testAudioUriSrc);
+
+            // Assert
+            Assert.AreSame(builder, anotherReference);
+            Assert.AreEqual(testAudioUriSrc.OriginalString, builder.Content.Audio.Src.OriginalString);
+        }
+
+        [TestMethod]
+        [ExpectedException(typeof(InvalidOperationException))]
+        public void AddAudioTest_WithInvalidMsUri_ThrowException()
+        {
+            // Arrange
+            Uri testAudioUriSrc = new Uri("ms-doesntexist:Notification.Reminder");
+
+            // Act
+            ToastContentBuilder builder = new ToastContentBuilder();
+            builder.AddAudio(testAudioUriSrc);
+        }
+
+        [TestMethod]
+        [ExpectedException(typeof(InvalidOperationException))]
+        public void AddAudioTest_WithInvalidAppDataUri_ThrowException()
+        {
+            // Arrange (ms-appdata isn't currently supported)
+            Uri testAudioUriSrc = new Uri("ms-appdata:///local/Sound.mp3");
+
+            // Act
+            ToastContentBuilder builder = new ToastContentBuilder();
+            builder.AddAudio(testAudioUriSrc);
+        }
+
+        [TestMethod]
+        [ExpectedException(typeof(InvalidOperationException))]
+        public void AddAudioTest_WithInvalidHttpUri_ThrowException()
+        {
+            // Arrange
+            Uri testAudioUriSrc = new Uri("https://myaudio.com/song.mp3");
+
+            // Act
+            ToastContentBuilder builder = new ToastContentBuilder();
+            builder.AddAudio(testAudioUriSrc);
+        }
+
         [TestMethod]
         public void AddAudioTest_WithAudioObject_ReturnSelfWithCustomAudioAdded()
         {
