标签: mpvolumeview

更改MPVolumeView路线按钮iOS 7的颜色

我正在为iOS 7设计一个音乐应用程序,我想直接在我的应用程序中放置"AirPlay"路由选择器按钮.我可以将按钮放置得很好,但它不会显示,因为图标是白色的,我的背景是白色的.

有没有办法改变路线按钮的颜色?

这是我用来创建按钮的代码.

self.airPlayButton = [[MPVolumeView alloc] initWithFrame:CGRectZero];
    self.airPlayButton.showsVolumeSlider = NO;
    [self.airPlayButton sizeToFit];
    self.airPlayButton.backgroundColor = [UIColor myGreenColor];
    [self addSubview:self.airPlayButton];
Run Code Online (Sandbox Code Playgroud)

基本上下面的图片是我想要的,除了我想要的图标绿色而不是它的背景.

MPVolumeView路线按钮与背景已更改

ios mpvolumeview ios7

6
推荐指数
3
解决办法
3946
查看次数

初始化MPVolumeView会导致iOS 11 beta 3上的应用程序崩溃

从iOS 11的第3版开始,我的应用程序在初始化用于AirPlay的MPVolumeView时开始崩溃.以下代码在早期版本的iOS和iOS 11 beta 1和2上运行得非常好.

func setupAirplayButton() {
    let rect = CGRect(x: -1000, y: -1000, width: 10, height: 10)
    volumeView = MPVolumeView(frame: rect) //app crashes here
    volumeView.showsVolumeSlider = false
    volumeView.setRouteButtonImage(nil, for: .normal)
    volumeView.translatesAutoresizingMaskIntoConstraints = false
    volumeView.isHidden = true

    if let airplayButton = volumeView.subviews.filter({$0 is UIButton }).first as? UIButton {
        self.airplayButton = airplayButton
        self.airplayButton?.addObserver(self, forKeyPath: "alpha", options: [.initial, .new], context: nil)
    }

    NotificationCenter.default.addObserver(self, selector: #selector(wirelessRouteActiveChanged), name: NSNotification.Name.MPVolumeViewWirelessRouteActiveDidChange, object: nil)

    myView.addSubview(volumeView)
}
Run Code Online (Sandbox Code Playgroud)

还有其他人遇到过同样的问题吗?

编辑:

崩溃日志

Exception Type:  EXC_CRASH (SIGTRAP)
Exception Codes: 0x0000000000000000, …
Run Code Online (Sandbox Code Playgroud)

ios airplay mpvolumeview ios11 xcode9-beta

6
推荐指数
1
解决办法
1062
查看次数

核心音频(音频单元)音频会话和MPVolumeView

我在VOIP应用程序上工作.我使用Core Audio Audio Units播放和录制音频.我需要能够操纵音量和输出设备.我正在尝试使用MPVolumeView设置音量并选择输出设备.

我的问题是:当我开始使用(开始播放和捕获RemoteIO音频单元)音频单元时,似乎MPVolumeView不再控制我的会话音量,而是控制系统范围的声音首选项.同时,硬件按钮控制音频单元播放的声音音量.此外,当我开始使用音频单元MPVolumeView开始显示按钮来更改输出设备但在此之前它没有.

似乎MPVolumeView控制某些系统范围音频会话的音量,但是当我开始使用音频单元时,会创建另一个应用程序范围(甚至音频单元宽)音频会话并用于播放声音.

那么问题是如何为我的Core Audio音频会话制作MPVolumeView控制音量?

我会很感激为什么会发生这种情况.我几乎整天都在谷歌上搜索,我发现有些人有相关问题,但没有任何提示:(.如果需要,我也可以发布更多细节.

iphone core-audio audiounit ios mpvolumeview

5
推荐指数
1
解决办法
480
查看次数

MPVolumeView动画问题

每次我MPVolumeView作为子视图添加到我UIViewController的视图中时,都会有一个快速动画(MPVolumeView从左到右展开),看起来非常奇怪.我正在寻找摆脱这个动画的方法,有人遇到过这个问题吗?

我差点接受这是一个MPVolumeView错误,但后来我注意到Apple肯定MPVolumeView在他们的原生音乐应用程序中使用了a ,那里没有奇怪的动画......所以一定有些东西我做错了.

更新:

代码非常简单,但是在评论中请求了,所以这里是:

MPVolumeView *volumeView = [[MPVolumeView alloc] initWithFrame:CGRectMake(10.f, 0.f, CGRectGetWidth(self.view.frame) - 20.f, 30.f)];
[[UISlider appearanceWhenContainedIn:[MPVolumeView class], nil] setMinimumValueImage:[UIImage imageNamed:@"icon-volumeMin"]];
[[UISlider appearanceWhenContainedIn:[MPVolumeView class], nil] setMaximumValueImage:[UIImage imageNamed:@"icon-volumeMax"]];
volumeView.center = CGPointMake(0.5f * CGRectGetWidth(self.view.frame), 0.5f * CGRectGetHeight(self.view.frame));
volumeView.showsRouteButton = NO;
[self.view addSubview:volumeView];
Run Code Online (Sandbox Code Playgroud)

我在github上做了一个非常简单的项目来解决问题,但你必须在设备上运行它,因为MPVolumeView它不会出现在模拟器上.或者只是看看这个gif:

GIF:

objective-c uikit ios mpvolumeview

5
推荐指数
1
解决办法
1071
查看次数

如何用swift设置MPVolumeView?

我想设置Iphone Speaker默认值.我的音量控制快速代码如下.它工作正常,但当我点击airplay按钮时,我看到自动选择第二个.(Iphone)

var wrapperView = UIView(frame: CGRectMake(10,40,(self.view.bounds.size.width)-20, 20))           
        wrapperView.backgroundColor=UIColor.purpleColor()         
        self.view.addSubview(wrapperView)       
        var volumeView = MPVolumeView(frame: wrapperView.bounds)
        volumeView.tintColor=UIColor.purpleColor()  
        wrapperView.addSubview(volumeView)
Run Code Online (Sandbox Code Playgroud)

airplay按钮选项

volume speaker airplay mpvolumeview swift

5
推荐指数
1
解决办法
2488
查看次数

MPVolumeView路由列表支持所有方向并忽略底层视图控制器

这似乎是一个操作系统错误,但仍需要解决方法.

使用基于视图控制器的方向定位iOS 8或9,MPVolumeView即使其父视图控制器仅支持单个方向,路由列表也将始终旋转.

这可能导致系统进入错误的方向状态,其中视图控制器以纵向显示,但状态栏(和控制中心)是横向的.

创建了一个演示错误的测试项目:https://github.com/NextFaze/MPVolumeViewTest

orientation screen-rotation ios mpvolumeview

5
推荐指数
1
解决办法
274
查看次数

MPVolumeView Airplay按钮消失

我在Swift中创建了一个自定义视频播放器,AVPlayer并使用MPVolumeView了音量控制和AirPlay.视图初始化完美,但我遇到AirPlay按钮在内部消失的情况MPVolumeView.

加载视图时,MPVolumeView初始化没有问题

MPVolumeView初始化

当用户选择使用AirPlay时,MPVolumeView移除音量滑块并仅显示AirPlay,这是预期的.

Airplay已启用

问题出现在用户关闭UIViewController然后再次打开它以播放另一个视频时.Airplay保持启用状态,这是预期的行为.当用户选择关闭AirPlay时,视频将返回到物理设备上播放,但AirPlay按钮会被隐藏.

缺少AirPlay按钮

我甚至试图showsRouteButton为我设置为true MPVolumeView,但这对此没有影响.在这种情况下,可能导致AirPlay按钮隐藏的原因是什么?只有在用户开始播放视频时启用AirPlay,然后关闭AirPlay时才会出现此问题.

ios avplayer airplay mpvolumeview swift

5
推荐指数
0
解决办法
605
查看次数

MPVolumeSlider 的 MPVolumeControllerSystemDataSource 在 iOS 11.4 中不可用

今天,我将 iOS 升级到最新的 11.4。要设置系统音量,我使用以下方法。

-(void) setVolumeLevel:(float)val {
    MPVolumeView *slide = [MPVolumeView new];
    UISlider *volumeViewSlider;

    for (UIView *view in [slide subviews]){
        if ([[[view class] description] isEqualToString:@"MPVolumeSlider"]) {
            volumeViewSlider = (UISlider *) view;
        }
    }
    volumeViewSlider.value=val;
}
Run Code Online (Sandbox Code Playgroud)

但在 11.4 中,音量未设置。下面是我打印时的日志。请教一下,iOS 11.4下如何设置系统音量

<MPVolumeSlider: 0x1075bc3f0 dataSource: <MPVolumeControllerSystemDataSource: 0x1075be160 not available>
Run Code Online (Sandbox Code Playgroud)

objective-c avaudioplayer ios mpvolumeview

5
推荐指数
1
解决办法
1172
查看次数

MPVolumeView AirPlay按钮未显示

使用MPVolumeView我想为应用程序的音频创建一个AirPlay输出按钮.

MPVolumeView *volumeView = [ [MPVolumeView alloc] initWithFrame:CGRectMake(20, 20, 220, 20)];
    [volumeView setShowsVolumeSlider:NO];
    [volumeView setShowsRouteButton:YES];
    [volumeView sizeToFit];
    [self.view addSubview:volumeView];
    [volumeView release];
Run Code Online (Sandbox Code Playgroud)

错误/问题没有,但它没有出现,任何想法?
谢谢!

objective-c ios airplay mpvolumeview

4
推荐指数
1
解决办法
5358
查看次数

如何更改AVRoutePickerView的元数据?

在此处输入图片说明

我的应用程序播放了一些声音,并且实现了AVRoutePickerView,因此它可以通过AirPlay或蓝牙流式传输声音。

一旦我点击AVRoutePickerView,上面的图像就会弹出,但是图像和标题错误。

图像和标题来自我之前玩过的Apple Music应用。

如何更改此元数据?

我试过配置MPNowPlayingInfoCenter时不走运。

let albumArt = MPMediaItemArtwork(boundsSize:CGSize(width: 50, height: 50)) { sz in
    return UIImage(named: "MyImage")!
}

MPNowPlayingInfoCenter.default().nowPlayingInfo = [MPMediaItemPropertyTitle: "some title",
                                               MPMediaItemPropertyArtist: "some artist",
                                               MPMediaItemPropertyArtwork: albumArt]
Run Code Online (Sandbox Code Playgroud)

这就是我制作AVRoutePickerView的方式。

import AVKit

let routePickerView = AVRoutePickerView.init(frame: myFrame)
routePickerView.backgroundColor = UIColor.clear
routePickerView.tintColor = UIColor(named: someColor)
routePickerView.activeTintColor = UIColor(named: someColor)
soundController.contentView.addSubview(routePickerView)
Run Code Online (Sandbox Code Playgroud)

我的应用程序针对iOS11并在iPhone 6和iPhone 7上进行了测试。

请引导我以正确的方式。谢谢

ios mpvolumeview mpnowplayinginfocenter swift swift4

4
推荐指数
1
解决办法
1816
查看次数