【问题标题】:Play subsequent large audio clips with Xamarin-Forms-Labs ISoundService使用 Xamarin-Forms-Labs ISoundService 播放后续的大型音频剪辑
【发布时间】:2015-09-18 02:12:52
【问题描述】:

我在 Xamarin 中使用 Xamarin-Forms-Labs ISoundService 在计时器中播放音频。

我让它每 30 秒播放一个音频文件(每个文件都不一样)

如果文件大小较小(小于 5k),我可以让它播放后续文件,但如果文件较大,则继续重播“较大的音频”文件来代替后续剪辑。

有什么想法可以解决这个问题吗?我是否正确“停止”了音频。我应该异步停止,因为它是异步播放吗?

感谢您的时间和专业知识

Xamarin-Forms-Labs ISoundService https://github.com/XLabs/Xamarin-Forms-Labs/blob/master/src/Platform/XLabs.Platform/Services/Media/ISoundService.cs

我的代码

                var audioFile = intervalSettingsAudioDict[currentInterval];
                Console.WriteLine(audioFile);
                soundService = DependencyService.Get<ISoundService>();

                if (soundService.IsPlaying){
                    soundService.Stop();
                }

                soundService.Volume = 1.0;
                soundService.PlayAsync(audioFile);

【问题讨论】:

    标签: xamarin xamarin.forms


    【解决方案1】:

    我认为问题在于 DependencyService.Get() 的默认行为是充当单例:http://forums.xamarin.com/discussion/22174/is-a-dependencyservice-implementation-class-treated-as-a-singleton

    我使用以下方法解决了它:

    var SoundService = DependencyService.Get<ISoundService>(DependencyFetchTarget.NewInstance);
    

    这在 iOS 上有效,但我仍在对 Android 上的一个无关问题进行故障排除。

    HTH。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-04
      • 2011-03-03
      • 2018-05-11
      • 1970-01-01
      • 2018-12-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多