Как играть в звук на Tizen Xamarin - PullRequest
0 голосов
/ 23 апреля 2020
Tizen.NET 6.0.0.14995
Tizen.Wearable.CircularUI 1.4.0
Xam.Plugin.SimpleAudioPlayer 1.4.0
Xamarin.Forms 4.3.0.908675

Простая задача - воспроизвести звук на каком-либо событии. Теперь я смотрю в сторону «SimpleAudioPlayer». У меня есть ресурс

<ItemGroup>
    <None Remove="sound-active.mp3" />
</ItemGroup>
<ItemGroup>
   <EmbeddedResource Include="sound-active.mp3" /> 
</ItemGroup>

. Я использую следующий код для инициализации:

Stream GetStreamFromFile(string filename)
{
      var assembly = typeof(App).GetTypeInfo().Assembly;
      var stream = assembly.GetManifestResourceStream(filename);

      return stream;
}

private void InitSound()
{
    var stream = GetStreamFromFile("MyApp.sound-active.mp3");
    soundActive = CrossSimpleAudioPlayer.CreateSimpleAudioPlayer();
    soundActive.Load(stream);
}

Но soundActive по некоторым причинам имеет значение null.

Мне кажется, что какая-то инициализация плагина отсутствует. Или библиотека просто устарела, хотя количество скачиваний велико. Может кто-нибудь посоветовать, как решить эту, казалось бы, простую задачу?

1 Ответ

0 голосов
/ 24 апреля 2020

Мне удалось решить проблему. Я конвертировал MP3 файлы в wav, поместил их в директорию "res"

        /  AppName
AppName
        \ AppName.Tizen.Wearabe / res

Для воспроизведения звука я использую следующий код:

string GetPathToSound(string soundName)
{
    return "/opt/usr/home/owner/apps_rw/org.app.test/res/" + soundName;
}

...

WavPlayer.StartAsync(GetPathToSound("sound-active.wav"), new AudioStreamPolicy(AudioStreamType.Media));
...