如何在 Tizen Xamarin 上播放声音
How to play sound on Tizen Xamarin
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 为空。
在我看来,缺少某种插件初始化。或者图书馆已经过时了,尽管下载量很高。有人可以建议如何解决这个看似简单的任务吗?
我设法解决了这个问题。我把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));
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 为空。
在我看来,缺少某种插件初始化。或者图书馆已经过时了,尽管下载量很高。有人可以建议如何解决这个看似简单的任务吗?
我设法解决了这个问题。我把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));