exoplayer를 사용하여 getExternalFilesDir mp3 재생

수평

저는 exoplayer를 처음 접했고 안드로이드의 외부 파일 디렉토리를 통해 오디오 파일 (특히 mp3)을 재생하는 데 어려움이 있습니다.

        val trackSelector = DefaultTrackSelector(this)
        trackSelector.setParameters(
            trackSelector.buildUponParameters().setMaxVideoSizeSd()
        )
        val player : SimpleExoPlayer = SimpleExoPlayer.Builder(this).setTrackSelector(trackSelector).build()


        videoView.player = player
        // Create a data source factory.
        val dataSourceFactory: DataSource.Factory = DefaultDataSourceFactory(this)
        // Create a progressive media source pointing to a stream uri.
        val mediaSource: MediaSource = ProgressiveMediaSource.Factory(dataSourceFactory)
            .createMediaSource(MediaItem.fromUri(Uri.fromFile(getExternalFilesDir("app_tracks/helloaudio.mp3"))))

        player.setMediaSource(mediaSource)
        player.playWhenReady = true
        player.seekTo(0, 0)
        player.prepare()

그리고 그것은 나에게 오류를 주었다-소스 오류

E/ExoPlayerImplInternal: Playback error
      com.google.android.exoplayer2.ExoPlaybackException: Source error
        at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:554)
        at android.os.Handler.dispatchMessage(Handler.java:103)
        at android.os.Looper.loop(Looper.java:214)
        at android.os.HandlerThread.run(HandlerThread.java:67)
     Caused by: com.google.android.exoplayer2.upstream.FileDataSource$FileDataSourceException: com.google.android.exoplayer2.upstream.FileDataSource$FileDataSourceException: java.io.FileNotFoundException: /storage/emulated/0/Android/data/com.company.app.android/files/app_tracks/helloaudio.mp3: open failed: EISDIR (Is a directory)
        at com.google.android.exoplayer2.upstream.FileDataSource.open(FileDataSource.java:97)
        at com.google.android.exoplayer2.upstream.DefaultDataSource.open(DefaultDataSource.java:193)
        at com.google.android.exoplayer2.upstream.StatsDataSource.open(StatsDataSource.java:84)
        at com.google.android.exoplayer2.source.ProgressiveMediaPeriod$ExtractingLoadable.load(ProgressiveMediaPeriod.java:1013)
        at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:415)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:919)
     Caused by: com.google.android.exoplayer2.upstream.FileDataSource$FileDataSourceException: java.io.FileNotFoundException: /storage/emulated/0/Android/data/com.mindfi.app2.android/files/app_tracks/helloaudio.mp3: open failed: EISDIR (Is a directory)

isExist 메서드를 사용하여 오디오 파일이 존재하는지 확인하고 사실을 반환합니다.

도와 주셔서 감사합니다.

알렉스 Rmcf

안드로이드 버전은 무엇입니까? 파일을 찾을 수 없음 예외 <파일을 잘못된 방법으로 가져 오려고하거나 파일이 존재하지 않는 것 같습니다. Android 8 이상을 사용하는 경우 Uri.fromFile () 코드 예제가 아닌 FileProvider를 사용하여 Uri를 가져 오는 것으로 가정합니다.

final Uri uri = (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) ?
                FileProvider.getUriForFile(context, packageName + ".provider", file) : Uri.fromFile(file);

매니페스트에서 :

 <provider
            android:name="androidx.core.content.FileProvider"
            android:authorities="com.yourpackage.provider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/file_paths" />
        </provider>

xml / file_paths (res 폴더에 있음) :

<?xml version="1.0" encoding="utf-8"?>
<paths>
    <external-path name="external_files" path="." />
</paths>

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

<audio> 태그를 사용하여 Angular에서 MP3 재생

분류에서Dev

JavaScript를 사용하여 HTML에서 mp3 재생 제어

분류에서Dev

Rails를 사용하여 mp3 파일 업로드 / 재생

분류에서Dev

DirectSound를 사용하여 Stream에서 MP3를 재생하는 방법

분류에서Dev

mediaplayer android를 사용하여 mp3를 재생할 수 없습니다.

분류에서Dev

Jquery에서 JS var를 사용하는 방법 (MP3 재생 목록)

분류에서Dev

NAudio를 사용하여 cryptoStream에서 mp3를 재생하는 방법은 무엇입니까?

분류에서Dev

내 리듬 박스가 mp3를 재생하지 않음

분류에서Dev

URL에서 mp3를 재생하는 방법

분류에서Dev

Android에서 mp3를 재생 하시나요?

분류에서Dev

내 리듬 박스가 mp3를 재생하지 않음

분류에서Dev

CrossMediaManager를 사용하여 Xamarin.Forms의 certian 위치에서 MP3 파일을 재생하는 방법

분류에서Dev

파이 게임에서 텍스트 파일의 변수를 사용하여 mp3 재생

분류에서Dev

Android에서 MediaPlayer를 사용하여 로컬 mp3 파일을 재생할 수 없습니다.

분류에서Dev

AVPlayer를 사용하여 파일 관리자에 다운로드 한 mp3 파일 재생

분류에서Dev

Windows : ffmpeg를 사용하여 FLAC를 MP3로 재귀 적으로 변환

분류에서Dev

알림으로 mp3 사운드를 재생하는 적절한 방법

분류에서Dev

Android : Mp3 사운드를 알림으로 재생하는 방법?

분류에서Dev

MediaElement JS가 IE에서 MP3를 재생하지 않습니다.

분류에서Dev

라이브러리를 사용하지 않고 MP3 / WAV 파일을 재생 하시겠습니까?

분류에서Dev

javascript 또는 jquery를 사용하여 버튼 클릭으로 여러 mp3 파일을 차례로 재생하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트를 사용하여 MP3 배열에서 무작위로 오디오를 재생하는 방법

분류에서Dev

Qualtrics에서 Java 스크립트를 사용하여 재생할 mp3 파일을 제어하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트를 사용하여 특정 시간 (ogg / mp3)에 오디오 태그 온로드 재생

분류에서Dev

VBR 용 FFmpeg를 사용하여 mp3를 wav로 변환

분류에서Dev

mplayer를 사용하여 .mp3를 wav 파일로 변환

분류에서Dev

JavaFx 디렉토리는 이미지 및 mp3를 선택하고 재생하고 표시합니다.

분류에서Dev

다른 페이지 javascript를 참조하기 전에 mp3 파일을 재생하십시오.

분류에서Dev

하위 디렉토리를 반복하고 모든 mp3 파일을 재생합니다.

Related 관련 기사

  1. 1

    <audio> 태그를 사용하여 Angular에서 MP3 재생

  2. 2

    JavaScript를 사용하여 HTML에서 mp3 재생 제어

  3. 3

    Rails를 사용하여 mp3 파일 업로드 / 재생

  4. 4

    DirectSound를 사용하여 Stream에서 MP3를 재생하는 방법

  5. 5

    mediaplayer android를 사용하여 mp3를 재생할 수 없습니다.

  6. 6

    Jquery에서 JS var를 사용하는 방법 (MP3 재생 목록)

  7. 7

    NAudio를 사용하여 cryptoStream에서 mp3를 재생하는 방법은 무엇입니까?

  8. 8

    내 리듬 박스가 mp3를 재생하지 않음

  9. 9

    URL에서 mp3를 재생하는 방법

  10. 10

    Android에서 mp3를 재생 하시나요?

  11. 11

    내 리듬 박스가 mp3를 재생하지 않음

  12. 12

    CrossMediaManager를 사용하여 Xamarin.Forms의 certian 위치에서 MP3 파일을 재생하는 방법

  13. 13

    파이 게임에서 텍스트 파일의 변수를 사용하여 mp3 재생

  14. 14

    Android에서 MediaPlayer를 사용하여 로컬 mp3 파일을 재생할 수 없습니다.

  15. 15

    AVPlayer를 사용하여 파일 관리자에 다운로드 한 mp3 파일 재생

  16. 16

    Windows : ffmpeg를 사용하여 FLAC를 MP3로 재귀 적으로 변환

  17. 17

    알림으로 mp3 사운드를 재생하는 적절한 방법

  18. 18

    Android : Mp3 사운드를 알림으로 재생하는 방법?

  19. 19

    MediaElement JS가 IE에서 MP3를 재생하지 않습니다.

  20. 20

    라이브러리를 사용하지 않고 MP3 / WAV 파일을 재생 하시겠습니까?

  21. 21

    javascript 또는 jquery를 사용하여 버튼 클릭으로 여러 mp3 파일을 차례로 재생하는 방법은 무엇입니까?

  22. 22

    자바 스크립트를 사용하여 MP3 배열에서 무작위로 오디오를 재생하는 방법

  23. 23

    Qualtrics에서 Java 스크립트를 사용하여 재생할 mp3 파일을 제어하는 방법은 무엇입니까?

  24. 24

    자바 스크립트를 사용하여 특정 시간 (ogg / mp3)에 오디오 태그 온로드 재생

  25. 25

    VBR 용 FFmpeg를 사용하여 mp3를 wav로 변환

  26. 26

    mplayer를 사용하여 .mp3를 wav 파일로 변환

  27. 27

    JavaFx 디렉토리는 이미지 및 mp3를 선택하고 재생하고 표시합니다.

  28. 28

    다른 페이지 javascript를 참조하기 전에 mp3 파일을 재생하십시오.

  29. 29

    하위 디렉토리를 반복하고 모든 mp3 파일을 재생합니다.

뜨겁다태그

보관