如何使音量滑块随手机音量和进度滑块可调而调整
How to make the volume slider adjust with phone volume and progress slider adjustable?
我开发了一个具有音频播放功能的iOS应用程序。我使用进度视图播放音频,并使用水平滑块进行音量控制。
我需要帮助的 2 件事:
-
进度视图不可编辑。我的意思是,当曲目正在播放时,用户应该能够将其拖动到某个点并从那里播放。与iOS音乐应用程序或Spotify相同?
-
音量滑块允许用户调整音量,但它不能与iOS设备音频一起使用。这意味着,当音频电平更改时,它应该在实际设备上更改。
这是我的代码:
NSString *stringPath = [[NSBundle mainBundle]pathForResource:@"01" ofType:@"MP3"];
NSURL *url = [NSURL fileURLWithPath:stringPath];
NSError *error;
avPlayer = [[AVAudioPlayer alloc]initWithContentsOfURL:url error:&error];
[avPlayer setNumberOfLoops:2];
[avPlayer setVolume:self.sliderVolumeOutlet.value];
[avPlayer stop];
[NSTimer scheduledTimerWithTimeInterval:.1 target:self selector:@selector(updateMyProgress) userInfo:nil repeats:YES];
-(void)updateMyProgress
{
float progress = [avPlayer currentTime]/[avPlayer duration];
self.myProgressView.progress = progress;
}
- (IBAction)sliderVolumeAction:(id)sender {
UISlider *mySlider = sender;
[avPlayer setVolume:mySlider.value];
}
- (IBAction)stopButton:(id)sender {
[avPlayer stop];
[avPlayer setCurrentTime:0];
}
- (IBAction)pauseButton:(id)sender {
[avPlayer pause];
}
- (IBAction)playButton:(id)sender {
[avPlayer play];
}
- (IBAction)backButtonEvent:(id)sender {
[self dismissViewControllerAnimated:YES completion:NULL];
}
- (void)viewWillDisappear:(BOOL)animated
{
[avPlayer stop];
}
-
使用
UISlider
而不是进度视图。 -
使用
MPVolumeView
进行音量控制。只需将其放置在视图层次结构中,它就可以在没有任何附加布线的情况下工作。
相关文章:
- Wxwidgets - 如何添加调整大小事件处理程序以使"X"绘图随窗口调整大小?
- 使 OpenCV 调整大小与 Matlab/Octave 调整大小相同
- 使用线程和静音时,双免费或损坏(!prev)错误
- 调整窗口内存映射文件的大小,而不会使指针失效
- 如何使螺纹包含循环使用静音以控制流动
- 矢量调整大小抛出bad_alloc会使原始数据无效
- 如何调整由两点定义的线的大小,使其受C++的最大线长度的约束
- 如何在重新调整窗口大小时使文本显示在窗口中心,visualc++
- 如何使QTabWidget的选项卡适合容器的大小 - 调整其长度
- 如何使Qt小部件可调整大小
- 如何使Qt网格布局自动调整列宽的大小
- 如何使音量滑块随手机音量和进度滑块可调而调整
- 如何使中心区域调整为 QDockWidgets 位置
- 是否可以在不使指针无效的情况下调整/重新分配大块内存
- 问题:如何在调整centralwidget的大小时使mainWindow自动调整大小
- Qt4 QTableWidget使列根据内容调整大小、交互式并与表边界对齐
- 调整STL矢量的大小是否会擦除/使其以前的内容无效
- 如何使GCC的长整型常量警告静音
- 如何使QMdiArea子窗口小部件不可调整大小
- 调整窗口大小,使主要小部件具有特定的大小