2009-12-23 1 views
11

iPod 음악 파일을 AVAudioPlayer로 가져 오려면 어떻게해야합니까?AVPlayer에서 iPod 라이브러리 파일을 재생하는 방법

+0

내가 HTTP보고하는 것이 좋습니다 것입니다 : //superuser.com/ 더 자세한 정보를 원할 수도 있습니다. 정확히 어떤 프로그램을 사용하고 있습니까? 지금까지 연구를 해본 적이 있습니까? – Guvante

+9

AVAudioPlayer는 iPhone에서 오디오를 재생하는 데 사용되는 클래스입니다. 네가 프로그래밍 할 때 알 잖아. 문제는 프로그래밍과 관련이 있습니다. – aehiilrs

답변

3

SDK에는 불법 복제 방지를 위해 iPod 라이브러리에서 파일을 읽는 기능이 없습니다 (AVAudioPlayer과 함께 사용해야 함). iPod 라이브러리 항목을 재생하려면 MPMusicPlayerController 클래스를 사용하십시오.

편집 : 더 이상 정확하지 않습니다. AVPlayer 클래스의 사용법을 설명하는 아래 답변을 참조하십시오.

+2

사실이 아닙니다. AVAudioPlayer와 함께 사용하기 위해 iPod 라이브러리에 액세스하는 방법을 설명하는 다른 답변을 참조하십시오. –

+0

이것은 2009 년 12 월에 있었을 수도 있지만 스티브 트란 비 (Steve Tranby)가 그의 대답에서 설명하는 것처럼 지금도 가능합니다. – prendio2

0

dB- 미터링에 대한 정보를 MPMusicPlayerController에 가져올 수 있습니까? 아마 녹음을 위해 AVAudioSession을 시작하는 것은 일을 할 것입니까? 일종의 볼륨 스펙트로 그래프를 만들기 위해서는 dB 값이 필요합니다.

+1

2 살짜리 질문이지만 여기에 도착한 다른 누구에게도 답을 추가 할 것입니다. 오디오에서 dB 레벨을 얻으려면 Core-Audio의 AudioStreamBasicDescription (https://developer.apple.com/library/mac/documentation/musicaudio/reference/CoreAudioDataTypesRef/Reference/reference.html#//apple_ref/doc/uid)을 사용하십시오./TP40004488-CH3-SW2)를 오디오 데이터를 스트림으로 사용합니다. 애셋에 ipod 라이브러리의 URL을 사용 중이며 코어 오디오가있는 URL의 데이터를 사용하고 있습니다. – jarryd

+0

이 대답을 조금 더 확장 할 수 있습니까? –

+1

@ Helium3 : 솔루션이 IOS10 및 DRM으로 보호되는 파일로 작동합니까? –

5

예, MPMusicPlayerController 클래스를 사용하지 않고 SDK를 사용하여 iPod 라이브러리의 노래를 재생할 수 있습니다.

보다 기본적인 AVPlayer 클래스는 노래의 MPMediaItemPropertyAssetURL 속성에서 NSUrl 값을 사용하여 iPod 라이브러리의 오디오 파일을 처리 할 수 ​​있습니다. 모든 것을 올바르게 설정하려면 더 많은 작업을해야하지만 할 수 있습니다.

+0

어떻게해야할지 모르겠지만 AVAplat = yer를 사용하면 작동하지 않습니다. –

20

데이빗 (David)은 이것보다 더 많은 작업이 필요하다고 언급 했으므로 예를 들어 미디어 항목 모음에서 다음 트랙을 재생해야하는 경우를 예로 들겠지만 사용자가 선택한 MPMediaItem 세트를 사용하여이를 수행하는 한 가지 방법이 있습니다 iPod Picker에서. AssetURL, 그것은 당신에게 MP3 파일의 경로를 제공합니다 당신이 사용 (예 : 아이팟 라이브러리 : //item/item.mp3 ID = -6889145242935454020)

NSURL *anUrl = [[mediaItems objectAtIndex: 0] valueForProperty:MPMediaItemPropertyAssetURL]; 
self.audioPlayerMusic = [[[AVPlayer alloc] initWithURL:anUrl] retain];      
[self.audioPlayerMusic play]; 
+0

Soory, AVPlayer로 소리를 재생할 수 없습니다. 도움이 필요합니다. –

+1

** DRM으로 보호 된 ** 노래 (예 : _Apple Music_ 구독) 또는 ** 오프라인 **에서 사용할 수 있지만 ** 클라우드에서는 ** 작동하지 않습니다 **. 음악이 DRM으로 보호되는지 또는 올바른 방법으로 DRM으로 보호되는 음악을 재생하는지 확인하는 데 관심이 있으시면 https://stackoverflow.com/a/47694472/4331787 –

+0

에 대한 자세한 답변을 읽어보십시오. 답장을 보내 주셔서 감사합니다. 여기서 drm 트랙을 탐지하는 방법을 설명했습니다. 어떻게하는지 말해줘. AVPlayer를 사용하고 있지만 재생되지 않습니다. MPMusicPlayer를 사용하여 재생할 수는 있지만, AVFoundation을 사용하여 재생할 필요가 있습니다. –

0
- (void)mediaPicker:(MPMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection { 
    NSURL *url = [[mediaItemCollection.items objectAtIndex:0] valueForProperty:MPMediaItemPropertyAssetURL]; 

    NSError *error; 
    self.player = [[AVAudioPlayer alloc] url error:&error]; 

    if (!error) { 
     [self.player prepareToPlay]; 
     [self.player play]; 
    } 

    [mediaPicker dismissModalViewControllerAnimated:YES]; 
}