【问题标题】:Windows 8.1 audio stream not playing in backgroundWindows 8.1 音频流不在后台播放
【发布时间】:2014-04-22 11:39:37
【问题描述】:

我正在制作一个可以在后台播放音频流的 Windows 8.1 应用程序。但它只是不会在后台播放音频流,例如,如果应用程序被最小化。当应用程序处于焦点时,它会很好地播放音频流。我希望有人可以提供帮助。谢谢。

MainPage.xaml:

<Grid Name="mainGrid" Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
    <TextBlock TextWrapping="Wrap" Text="Radio Limfjord" VerticalAlignment="Top" Height="116" FontSize="100" Margin="360,10,360,0"/>
    <MediaElement Visibility="Visible" Name="mediaplayer" AudioCategory="BackgroundCapableMedia" AutoPlay="True" RealTimePlayback="True" AudioDeviceType="Multimedia" HorizontalAlignment="Right" Width="1218" Margin="0,366,63,177" AreTransportControlsEnabled="True" CurrentStateChanged="mediaplayer_CurrentStateChanged" />
    <Button Name="cmdPlay" Content="Afspil" Margin="566,627,0,41" Click="cmdPlay_Click" Width="100" Height="100"/>
    <Button Name="cmdStop" Content="Stop" Margin="714,626,0,41" Click="cmdStop_Click" Width="100" Height="100"/>
</Grid>

MainPage.xaml.cs:

public sealed partial class MainPage : Page
{
    SystemMediaTransportControls systemControls;
    public MainPage()
    {
        this.InitializeComponent();

    }

    void InitializeTransportControls()
    {
        // Hook up app to system transport controls.
        systemControls = SystemMediaTransportControls.GetForCurrentView();
        systemControls.ButtonPressed += SystemControls_ButtonPressed;

        // Register to handle the following system transpot control buttons.
        systemControls.IsPlayEnabled = true;
        systemControls.IsPauseEnabled = true;
    }

    void MusicPlayer_CurrentStateChanged(object sender, RoutedEventArgs e)
    {
        switch (mediaplayer.CurrentState)
        {
            case MediaElementState.Playing:
                systemControls.PlaybackStatus = MediaPlaybackStatus.Playing;
                break;
            case MediaElementState.Paused:
                systemControls.PlaybackStatus = MediaPlaybackStatus.Paused;
                break;
            case MediaElementState.Stopped:
                systemControls.PlaybackStatus = MediaPlaybackStatus.Stopped;
                break;
            case MediaElementState.Closed:
                systemControls.PlaybackStatus = MediaPlaybackStatus.Closed;
                break;
            default:
                break;
        }
    }

    void SystemControls_ButtonPressed(SystemMediaTransportControls sender,
SystemMediaTransportControlsButtonPressedEventArgs args)
    {
        switch (args.Button)
        {
            case SystemMediaTransportControlsButton.Play:
                PlayMedia();
                break;
            case SystemMediaTransportControlsButton.Pause:
                PauseMedia();
                break;
            default:
                break;
        }
    }

    async void PlayMedia()
    {
        await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
        {
            mediaplayer.Play();
        });
    }

    async void PauseMedia()
    {
        await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
        {
            mediaplayer.Pause();
        });
    }

    private void cmdPlay_Click(object sender, RoutedEventArgs e)
    {
        mediaplayer.Source = new Uri("http://media.wlmm.dk/limfjord", UriKind.Absolute);
        mediaplayer.Play();
    }

    private void cmdStop_Click(object sender, RoutedEventArgs e)
    {
        mediaplayer.Stop();

    }

    private void mediaplayer_CurrentStateChanged(object sender, RoutedEventArgs e)
    {

    }
}

【问题讨论】:

  • 顶...有没有人可以帮忙。
  • 你解决了吗?我有同样的问题。我怀疑流的格式是问题所在。例如,从 DR 的 netradio 流式传输不起作用,但从其他无线电(如 Radio 24syv)流式传输有效。
  • 你找到这个问题的答案了吗?同样的问题..

标签: c# audio background stream windows-8.1


【解决方案1】:

您是否在应用清单中声明了“音频 - 后台任务”?

卢多

更多:http://blogs.msdn.com/b/johnkenn/archive/2013/12/31/supporting-background-audio-in-your-windows-8-1-app.aspx

【讨论】:

【解决方案2】:

不确定您是否曾经找到并回答过这个问题,但查看您的代码,您似乎没有调用 InitializeTransportControls() 方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多