次の方法で共有


トーストでのカスタム オーディオの使用

トースト通知でカスタム オーディオを使用して、アプリでブランド独自のサウンド エフェクトを表現できます。 たとえば、メッセージング アプリで、トースト通知に汎用の通知サウンドではなく、独自のメッセージング サウンドを使用すると、ユーザーは特定のアプリから通知を受け取ったことが即座にわかります。

UWP コミュニティ ツールキットの NuGet パッケージをインストールする

コードを利用して通知を作成するには、通知 XML コンテンツのオブジェクト モデルを提供する UWP コミュニティ ツールキットの Notifications ライブラリの使用を強くお勧めします。 手動で通知用 XML を構築することもできますが、ミスが発生しやすく煩雑です。 UWP コミュニティ ツールキットに用意された Notifications ライブラリは、Microsoft の通知を担当しているチームが構築して管理しています。

NuGet から Microsoft.Toolkit.Uwp.Notifications をインストールします。

名前空間宣言の追加

using Microsoft.Toolkit.Uwp.Notifications;

カスタム オーディオを追加する

Windows Mobile は、常にトースト通知でカスタム オーディオがサポートされてきました。 しかし、デスクトップ版では、バージョン 1511 (ビルド 10586) で初めてカスタム オーディオのサポートが追加されました。 バージョン 1511 より前のデスクトップ デバイスに、カスタム オーディオを含んだトーストを送信すると、トーストは無音となります。 そのため、バージョン 1511 より前のバージョンのデスクトップでは、トースト通知にカスタム オーディオを含めないでください。これにより、通知の際に、少なくとも既定の通知サウンドが使用されます。

既知の問題: デスクトップ バージョン 1511 を使用している場合、トーストのカスタム オーディオは、アプリが Microsoft Store 経由でインストールされた場合にのみ機能します。 そのため、Microsoft Store への提出前に、ローカル デスクトップでカスタムのオーディオをテストすることはできませんが、Microsoft Store からインストールしたときには、オーディオが正常に機能します。 Anniversary update ではこの問題が修正され、ローカルに展開されたアプリからでもカスタム オーディオが正常に動作します。

var contentBuilder = new ToastContentBuilder()
    .AddText("New message");

    
bool supportsCustomAudio = true;
 
// If we're running on Desktop before Version 1511, do NOT include custom audio
// since it was not supported until Version 1511, and would result in a silent toast.
if (AnalyticsInfo.VersionInfo.DeviceFamily.Equals("Windows.Desktop")
    && !ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 2))
{
    supportsCustomAudio = false;
}
 
if (supportsCustomAudio)
{
    contentBuilder.AddAudio(new Uri("ms-appx:///Assets/Audio/CustomToastAudio.m4a"));
}

// Send the toast
contentBuilder.Show();

サポートされているオーディオ ファイルの種類は次のとおりです。

  • .aac
  • .flac
  • .m4a
  • .mp3
  • .wav
  • .wma

サポートされているオーディオ ファイルのソース:

  • ms-appx:///
  • ms-resource

サポート対象外のオーディオ ファイルのソース:

  • ms-appdata
  • http://、https://
  • C:/、F:/ など。

通知を送信する

音声での通知の送信は、通常の通知を送信するのと同じです (Show メソッドを呼び出すだけです)。 詳しくは、ローカルのトースト通知の送信に関するページをご覧ください。