【问题标题】:How to embed mp3 files in IOS/Android/WebAssembly with UnoPlatform如何使用 UnoPlatform 在 IOS/Android/WebAssembly 中嵌入 mp3 文件
【发布时间】:2020-03-30 17:36:04
【问题描述】:

我正在尝试构建一个能够播放一些嵌入式 mp3 音效文件的 UnoPlatform 应用程序。

使用 MediaPlayerElement,可以直接播放来自 HTTP 源的媒体,但似乎必须跳过一些特定于平台的循环才能播放嵌入的资源文件。

以下事件处理程序适用于 UWP,但不适用于 IOS、Android 或 WebAssembly:

private void SpinButton_OnClick(object sender, RoutedEventArgs e)
{
   player1.Source = MediaSource.CreateFromUri(new Uri("ms-appx:///Assets/Sound.mp3"));
}

我已尝试关注https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/mediaelement 此处的信息,了解如何在 IOS 上嵌入媒体,但它似乎对我不起作用。

这有什么诀窍吗?有这个工作的样本吗?

【问题讨论】:

    标签: android ios uno-platform


    【解决方案1】:

    MediaPlayerElement 的当前实现仍有一些限制,但应该支持在 Android 和 iOS 上播放 mp3

    诀窍是将.mp3 文件放在正确的位置,因为它们尚未(与图像文件相比)在构建期间自动复制到正确的特定于平台的位置。如果是 Android,您需要将音频文件放在 Assets 文件夹中,例如:

    Build Action 需要设置为 AndroidAsset

    对于 iOS,文件将转到 Resources 文件夹并将 Build Action 设置为 Bundle Resource

    您现在可以使用ms-appx: URI 方案来引用这些文件,就好像它们实际上位于“Assets”文件夹中一样:

    <Grid>
        <MediaPlayerElement AutoPlay="True" Source="ms-appx:///Assets/test.mp3" />
    </Grid>
    

    这只是一个简单的示例,但希望您可以以此为起点。如有疑问,在 GitHub 上浏览相应功能的源代码非常有用,例如这里是 media file loading implementation for Android。

    对于 WebAssembly,MediaPlayerElement 尚不支持,但如果您想尽快看到它的支持,请vote up on this issue

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-13
      • 2013-06-27
      • 2021-04-07
      • 1970-01-01
      • 2012-09-22
      • 2014-03-09
      • 1970-01-01
      • 2011-02-05
      相关资源
      最近更新 更多