音频路由按钮 - AirPlay

Posted

技术标签:

【中文标题】音频路由按钮 - AirPlay【英文标题】:Audio Route Button - AirPlay 【发布时间】:2012-01-11 19:23:43 【问题描述】:

我目前正在通过 AudioQueues 播放音频。我想允许用户连接到 Airplay 设备。

如果我创建一个 MPVolumeView 并使用“showsRouteButton”显示路由按钮,我可以成功连接。

有没有办法在不使用 MPVolumeView 的情况下将音频路由更改为 Airplay?还是更简单的 Apple 视图,只是路由按钮?

【问题讨论】:

【参考方案1】:

1 隐藏 MPVolumeView 并使其成为全局变量

CGRect frame = CGRectZero;
frame.origin.y = 0;
frame.origin.x = 410; // out of the screen
_volumeView = [[MPVolumeView alloc] initWithFrame:frame];
[_volumeView setShowsVolumeSlider:NO];
[_volumeView setShowsRouteButton:YES];
[self.view addSubview:_volumeView];

2 模拟按钮磁带

- (IBAction)handleAirPlay:(id)sender 
        for (UIButton *button in _volumeView.subviews)
        
            if ([button isKindOfClass:[UIButton class]])
            
                [button sendActionsForControlEvents:UIControlEventTouchUpInside];
            
        

【讨论】:

【参考方案2】:

我认为没有其他方法可以显示 Airplay 路由按钮(至少在当前的 SDK ios 5.1 中)。如果要显示 AirPlay 选项,则必须使用 MPVolumeView ..

【讨论】:

我发现我可以自定义 MPVolumeView,所以这将起作用 mAirPlayBtn.showsVolumeSlider = false;【参考方案3】:

从 iOS 11 开始,您可以使用 AVRoutePicker :

import AVKit 

let rpv = AVRoutePickerView()
view.addSubview(rpv)

【讨论】:

以上是关于音频路由按钮 - AirPlay的主要内容,如果未能解决你的问题,请参考以下文章

播放音频时更改音频路由

如何扩大 MPVolumeView 路由按钮区域?

AirPlay:通过显示可用设备弹出来重定向音频

WIFI-Direct(Wifi直连)AirPlayDLANMiracast功能介绍

iPhone SDK:设置音频路由并在静音开关打开时静音音频

Android 9 Audio系统笔记:音频路由实现——从AudioTrack到audiohal