2012-08-08 883 views
3

我需要在iOS中顯示音頻或視頻內容。如何在iOS中播放NSData音頻或視頻?

不幸的是,我沒有收到作爲URL的音頻/視頻,而是作爲內容類型(MIME類型)的NSData

它使用的時候似乎UIWebView無法正常播放的音頻/視頻數據的loadData:MIMEType:textEncodingName:baseURL:使用loadRequest:(感謝蘋果爲這個美好的控制器),只有當

,所以我想NSData的保存到臨時文件 ,但我沒有文件擴展名(只是MIME類型)。

完成此操作的最佳方法是什麼? 也許使用其他一些iOS控件來實現音頻/視頻播放器?

在此先感謝。

+1

您不需要將擴展​​名保存爲臨時文件。只需保存它沒有擴展名,和e。 G。 AVAudioPlayer會從它的內容中找出它的文件類型。 – 2012-08-08 09:17:47

+0

我需要支持音頻和視頻內容,因此它只能解決音頻部分。使用AVAudioPlayer意味着我需要使用按鈕來實現自己的「播放器」嗎? – HyBRiD 2012-08-09 10:32:21

回答

0

如果有人想知道這裏是解決方案:

您需要使用UTType functions 在一個名爲MobileCoreServices框架聲明。 其基本思想是從MIME類型獲取UTI,然後從UTI獲得擴展名:

MIME類型 - > UTI - >文件擴展名。

MIME類型到UTI轉換的示例可以在here找到。

0

做出MAPPS MIME類型來適當延長

-(NSString *)getExtenstionFromMimeType:(NSString *)mimeType 
{ 

    if ([mimeType isEqualToString:@""video/mp4"]) 
     return @"mp4"; 
    else if (.....) 
     and so on 

} 

,你也可以使用MPVideoPlayerController播放音頻視頻的方法,但你也將需要源媒體URL或本地文件路徑

+0

該解決方案要求我將MIME維護到擴展映射,並考慮到文件類型和MIME類型有很多重複,這是一團糟。 – HyBRiD 2012-08-09 10:28:11