在IOS上可以用MPMoviePlayerViewController实现在线播放音频,但是当网络不理想的情况下客户体验总不是太好,所以采用了,先下载下来,然后播放。
1.下载音频
NSString *soundhttpURL = [[NSString alloc] initWithFormat:@"http://114.112.55.2:6080/audio/question/audio_"];
NSString *qid = [currentQuestion objectForKey:@"qid"];
NSString *soundURLStr = [NSString stringWithFormat:@"%@%@%@",soundhttpURL,qid,@".wav"];
NSURL *soundURL = [NSURL URLWithString:soundURLStr];
NSLog(@"soundURL:%@",soundURL);
NSDate *date = [NSDate date];
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:soundURL];
NSURLResponse *response;
NSError *error;
NSData* result = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:&response error:&error];
NSLog(@"Response expects %lld bytes", [response expectedContentLength]);
NSLog(@"Response suggested file name: %@", [response suggestedFilename]);
if ([response suggestedFilename])
self.savePath = [DEST_PATH stringByAppendingString:[response suggestedFilename]];
if (!result)
NSLog(@"Error downloading data: %@.", [error localizedDescription]);
else if ([response expectedContentLength] < 0)
NSLog(@"Error with download. Carrier redirect?");
else
{
NSLog(@"Download succeeded.");
NSLog(@"Read %d bytes", result.length);
NSLog(@"Elapsed time: %0.2f seconds.", -1*[date timeIntervalSinceNow]);
[result writeToFile:self.savePath atomically:YES];
NSLog(@"Data written to file: %@.", self.savePath);
}
[self performSelectorOnMainThread:@selector(playQuestionSound:) withObject:soundURL waitUntilDone:NO];//播放问题音频
2.播放音频
- (void) playQuestionSound:(NSURL *)soundURL {
//播放问题音频
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil];
[[AVAudioSession sharedInstance] setActive: YES error: nil];
NSURL *fileURL = [NSURL fileURLWithPath:self.savePath];
player = [[AVAudioPlayer alloc] initWithContentsOfURL: fileURL error: nil];
[fileURL release];
[player setVolume:15.0];
[player play];
}
分享到:
相关推荐
特别是针对iOS平台,开发者可能遇到一些特定的音频播放问题,比如在iOS设备上播放音频文件时没有声音。这类问题的存在,不仅影响用户体验,也可能阻碍项目进展。本知识点将针对这一问题,从技术细节和解决方法上,...
在iOS平台上,流式音频播放是一项关键的技术,它允许应用程序实时接收并播放来自网络的数据,无需将整个音频文件下载到本地。这样的实现方式对于处理大容量的音频资源,或者需要节省用户存储空间的情况非常有效。...
在iOS平台上,实时语音播放是移动应用开发中的一个重要部分,特别是在聊天、语音通话或游戏等应用场景中。PCM(Pulse Code Modulation)数据是未经压缩的原始音频数据,广泛用于语音处理。本篇文章将深入探讨如何在...
- **MOV**:Apple公司支持的一种视频格式,常用于iOS设备。 ##### 2.2 iOS SDK中的视频播放支持 - **MPMoviePlayerViewController类**:提供了一个简单的方法来播放视频,适用于iOS 4及更高版本。 - **限制**:...
"DeviceUtil"这个名字可能是指该库提供了一些设备相关的辅助工具,如检测设备型号、屏幕尺寸、系统版本等功能,以更好地适应不同的iOS设备。综合这些信息,我们可以推测这是一个全面且实用的iOS视频音频处理库。
在播放或录制音频时,可以调整声道设置,以实现特定的音频效果。 9. **错误处理**: 在处理音频时,可能会遇到各种错误,如文件不存在、权限问题、内存问题等。因此,编写良好的错误处理机制是至关重要的。 通过...
在播放完毕或不再需要时,及时释放相关资源,防止内存泄漏。 通过这个Demo,开发者可以了解如何在iOS应用中实现音频的完整生命周期管理,从录制到播放,以及相关的交互和控制。无论是对音频功能有初步认识的初学者...
在iOS平台上实现音频直播涉及到多个技术领域,包括音频处理、网络传输、实时通信以及用户界面设计等。以下是对"音频直播-ios"这一主题的详细解释: 1. 音频处理: - AVFoundation框架:iOS中处理音频的核心框架,...
解码过程通常由硬件或软件实现,例如在移动设备上,音频解码可能由硬件加速器完成,而在计算机上,可以使用FFmpeg等库进行软件解码。解码后的音频数据会被送入音频播放器,通过扬声器或耳机输出。 六、跨平台支持 ...
9. **适配不同设备和屏幕尺寸**:iOS设备有多种屏幕尺寸,源码中可能会包含适配不同屏幕的代码,如使用AutoLayout或者Size Classes来实现响应式布局。 10. **错误处理**:在实际开发中,音频视频播放可能会遇到各种...
在iOS平台上实现流媒体播放是一项重要的技术,它允许用户观看电影、视频和其他多媒体内容而无需等待整个文件下载完成。这得益于流媒体技术的实时传输特性,使得内容可以边下载边播放,大大提升了用户体验。以下是对...
在iOS平台上,使用FFmpeg库来播放RTSP流可以实现高效、灵活的视频播放功能,尤其是在视频监控场景中。FFmpeg是一个开源的多媒体处理框架,它包含了一系列的库,如libavcodec(编解码器)、libavformat(多媒体容器...
使用这样的工具类库,开发者可以方便地实现音频格式转换功能,确保用户能够在iOS设备上播放来自其他平台的AMR音频。 在实际开发中,除了这个工具类库,还有其他库如OpenSSL或FFmpeg也能处理音频格式转换。然而,...
10. **节能优化**:AVPlayer可以智能地管理资源,比如在设备闲置时降低能耗,这使得它在移动设备上运行更加高效。 11. **缓存策略**:开发者可以自定义URLSession的缓存策略,以提高播放性能并减少网络流量。 12. ...
9. **UI布局**:在实现视频播放界面时,需要考虑视频播放控件(如播放/暂停按钮、全屏按钮等)的布局,确保它们在不同屏幕尺寸和设备方向下都能正常显示。 10. **性能优化**:对于大型视频文件,可能需要考虑预加载...
9. **适配不同设备**:考虑到iOS设备的多样性,如iPhone、iPad以及不同的系统版本,确保音频播放代码兼容性良好。 10. **调试与测试**:在开发过程中,不断进行真机测试,确保音频在各种场景下都能正常播放,避免...
通常,这些系统声音文件是`.caf`格式,因为它们是通用音频格式,适合在iOS设备上使用。 然后,当你希望播放声音时,调用`AudioServicesPlaySystemSound`函数即可: ```swift AudioServicesPlaySystemSound(soundID...
这个"iOS 后台播放歌曲 demo"示例将展示如何在Objective-C(OC)环境下实现在iOS设备上实现网络歌曲和本地歌曲的后台播放,同时提供封面显示及上一曲、下一曲的控制功能。以下是对这个demo的详细解读。 首先,为了...
在iOS开发中,视频播放是常见的功能之一,尤其在移动应用中,用户对多媒体内容的需求日益增长。这个“iOS 视频播放Demo”提供了一个很好的起点,帮助开发者了解如何在iOS应用中集成视频播放功能。以下将详细讲解相关...
5. 在设备上,进入“设置”> “声音与触感”> “电话铃声”或“提醒音”,你可以看到新导入的铃声并设置为默认。 接下来,我们深入探讨一下iOS系统的铃声功能。在iOS中,用户不仅可以自定义来电铃声,还可以设置...