ios如何获取在 NsData 中下载的音频文件?

ios如何获取在 NsData 中下载的音频文件?

标签: ios  Objective-C

发布时间: 2014/12/12 7:48:06

在我的项目我有 Url 的音频......看看我的代码...

ViewController.h

#import <UIKit/UIKit.h>

#import <AVFoundation/AVFoundation.h>

@interface ViewController : UIViewController<AVAudioPlayerDelegate,NSURLConnectionDelegate>

{

    AVAudioPlayer *song;

   // NSMutableData *fileData;

    NSData *myData;

   }

 @property (nonatomic, retain) AVAudioPlayer *song;

@property(nonatomic,retain) NSData *myData;

@end

ViewController.m

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

@synthesize song,myData;

- (void)viewDidLoad

{

    [super viewDidLoad];

    NSURL *myUrl;

    myUrl = [NSURL URLWithString:@"http://p0.bcbits.com/download/track/60523f9784a2912348eff92f7b7e21e8/mp3-128/1269403107?c22209f7da1bd60ad42305bae71896761f6cd1f4d6c29bf401ef7e97b90c3d5939b57f5479b37ad4d41c48227740d7ba8b5f79b76aa8d6735b8f87c781f44fb019762a2903fe65aeafb30d90cb56b385e27cd770cc9f9d60e5ea3f130da6ad3db728ff7e24a09fab9f351120810ee91f78f1e94fcabc98aabb37d4248358f6da4a0fa7a74fe8c89da2a768&fsig=cd06c325fc41b6f8edb0409011e8839c&id=1269403107&stream=1&ts=1395489600.0"];

    myData = [NSData dataWithContentsOfURL:myUrl];

}

- (void)didReceiveMemoryWarning

{

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.
}

@end

在上面的代码如何可以将转换 mydata 到一个数组???或如何可以下载这个音频和在手机内存中存储??

解决方法 1:

您可以存储设备内存作为像下面将音频数据

myData = [NSData dataWithContentsOfURL:myUrl];

[myData writeToFile:[NSHomeDirectory() stringByAppendingPathComponent:@"Documents/audio.mp3"] atomically:YES];

要播放您保存在设备中的音频文件:

添加 AudioToolbox.framework 和 AVFoundation.framework 为您的项目生成

在.h 文件中

#import <AudioToolbox/AudioToolbox.h>

#import <AVFoundation/AVFoundation.h>

AVAudioPlayer *player;

在.m 文件

-(void)initPlayer
{
    AVAudioSession *audioSession = [AVAudioSession sharedInstance];

    UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;     

    AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,sizeof (audioRouteOverride),&audioRouteOverride);

    NSError *err;

    [audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:&err];

    audioSession.delegate = self;

    [audioSession setActive:YES error:&err];

    player = [[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL fileURLWithPath:[NSHomeDirectory() stringByAppendingPathComponent:@"Documents/audio.mp3"]] error:nil];

}

-(void)playFile
{   

    if (player.playing)
    {
        [player pause];

        isPlaying = NO;

    }
    else
    {               
        [player play];

        isPlaying = YES;

    }

}

谢谢你 !

时间: 2024-08-14 10:09:36

ios如何获取在 NsData 中下载的音频文件?的相关文章

傻瓜式下载“喜马拉雅”音频文件

今天刷水木看到一个问贴,如何下载喜马拉雅音频文件? 看了几个回帖,有人说app端可以下载,有人说需要解密,也有人说可以用录屏大师翻录一下 这里,我提出一个新的解决办法,就是从原网页中抽丝剥茧的找到源文件,直接右键下载到本地 当然,如果是批量下载的话需要借住python3爬虫,因为是格式化的json数据,找到了规则非常简单,可以参考我之前写的网易云歌曲的下载方法 这里就不再重复贴出代码了 首先打开喜马拉雅网页版,随便点击一个节目,这里我用平时常听的“早安英文”举例 https://www.xima

Eclipse插件开发 RCP生成jar包后获取jar包中的Plugin/Bundle文件资源——以FreeMarker为例

在进行Eclipse插件开发时,有一种应用场景是,需要在插件项目中设置存放有例如配置文件.模板文件的资源文件夹.本文介绍的问题是,插件项目打包发布后,无法访问资源文件夹中的资源文件. 问题重现: 在插件项目的根目录下有模板资源文件夹,需要在插件运行时访问这些资源.在插件开发中,通过"Run as -- Eclipse Application"方式测试插件,可以正常访问,但是生成jar包后发布运行,却无法定位到这些资源文件(表现为,指向该资源文件的URL对象为空). 问题代码(目的是插环

VC++中MCI播放音频文件 【转】

MCI播放mp3音频文件例程 源文件中需要包含头文件 Mmsystem.h,在Project->Settings->Link->Object/libray module中加入库 Winmm.lib.或添加代码#pragma   comment(lib, "winmm.lib") MCI_OPEN_PARMS op; void CMCIDlg::OnPlay() {  // TODO: Add your control notification handler code

JAVA从局域网共享文件夹中下载上传文件以及java访问共享文件夹

1 package com.xx.test; 2 3 4 import java.io.BufferedInputStream; 5 import java.io.BufferedOutputStream; 6 import java.io.File; 7 import java.io.FileInputStream; 8 import java.io.FileOutputStream; 9 import java.io.IOException; 10 import java.io.InputS

快速清理maven仓库中下载错误的文件

有时候使用pom文件下载依赖文件的时候突然网络异常,可能会出现依赖文件出现破损,导致怎么都不能使用,也没有重新下载. 之前解决办法是找到出现破损的文件并删除,让其重新下载,但是这样效率很低,也很难找到哪个文件破损,一怒一下把整个maven本地仓库都 删了,这样就很得不偿失了. 其实只要一段dos命令就可以把仓库里的所有破损文件删除,快速又好用. @echo off set REPOSITORY_PATH=D:\tools\path\reporem 开始删除... for /f "delims=&

搜索手机中的所有音频文件

代码如下 1 public static List<music> getAllMusic(Context context){ 2 musics.clear(); 3 4 Uri uri=MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; 5 /** 6 * public String name;//歌曲名 7 public String author;//歌手 8 public String path;//路径 还可以获取其他信息 9 */ 10 Stri

如何从ios酷我音乐盒中导出已下载的音乐文件(使用Java编程实现)

如何从ios酷我音乐盒中导出已下载的音乐文件 本文所涉及内容用于技术学习,请勿用于不正当用途,否则后果自负. 酷我音乐ios版下载的音乐文件,通过同步助手等软件查看时,发现音乐文件都是一串数字命名.通过网上查找和自己尝试,发现那些文件都是音频文件改了文件名而已.只要修改回文件名,就能和正常的音乐一样播放了. 参考网址: http://blog.sina.com.cn/s/blog_4d5428240101enzu.html 在网上找到了一个软件,也就是上面参考网址中的软件,但是使用的时候出现了问

修正iOS从照相机和相册中获取的图片 方向

修正iOS从照相机和相册中获取的图片 方向 修正iOS从照相机和相册中获取的图片 方向 使用系统相机拍照得到的图片的默认方向有时不是ImageOrientationDown,而是ImageOrientationLeft,在使用的时候会出现图片顺时针偏转90°.使用fixOrientation方法修正这个问题. - (UIImage *)fixOrientation { // No-op if the orientation is already correct if (self.imageOri

C# 网络编程之webBrowser获取网页url和下载网页中图片

该文章主要是通过C#网络编程的webBrowser获取网页中的url并简单的尝试下载网页中的图片,主要是为以后网络开发的基础学习.其中主要的通过应用程序结合网页知识.正则表达式实现浏览.获取url.下载图片三个功能.而且很清晰的解析了每一步都是以前一步为基础实现的. 一.界面设计 界面设计如下图所示,添加控件如图,设置webBrowser1其Anchor属性为Top.Bottom.Left.Right,实现对话框缩放;设置groupBox1其Dock(定义要绑到容器控件的边框)为Buttom,实