마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

assets 데이터 읽기

0 추천
package com.cblrepeller.codename.myapplication;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;


public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        startService(new Intent("com.codename.repeller.dome") );

        Button btn_dome = (Button)findViewById(R.id.button_dome);

        btn_dome.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                stopService(new Intent("com.codename.repeller.dome"));
            }
        });

    }
}

위는 MainActivity

아래는 ServiceClass

package com.cblrepeller.codename.myapplication;

import android.app.Service;
import android.content.Intent;
import android.content.res.AssetFileDescriptor;
import android.media.MediaPlayer;
import android.os.IBinder;
import android.util.Log;

import java.io.IOException;

/**
 * Created by CodeName on 2015-08-12.
 */
public class ServiceClass extends Service{

    private MediaPlayer mediaPlayer = new MediaPlayer();

    @Override
    public IBinder onBind(Intent intent)
    {
        return null;
    }

    AssetFileDescriptor rel = getAssets().openFd("dome.mp3");

    @Override
    public void onStart(Intent intent, int startId)
    {
        Log.i("repeller", "onStart()");
        super.onStart(intent, startId);

        mediaPlayer.setDataSource(rel.getFileDescriptor(), rel.getStartOffset(), rel.getLength());

        rel.close();

        mediaPlayer.start();
    }

    @Override
    public void onDestroy()
    {
        Log.i("repeller", "omDestoy()");
        super.onDestroy();
        mediaPlayer.stop();
    }
}

어찌 어찌 해서 assets 에 있는 mp3파일을 불러오는 방법을 알았는데 에러가 납니다.

Error:(25, 49) error: unreported exception IOException; must be caught or declared to be thrown
Error:(33, 34) error: unreported exception IOException; must be caught or declared to be thrown
Note: C:\Users\CodeName\Desktop\MyApplication\app\src\main\java\com\cblrepeller\codename\myapplication\ServiceClass.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Error:Execution failed for task ':app:compileDebugJava'.
> Compilation failed; see the compiler error output for details.

빨간색은 문제의 라인입니다.

익명사용자 님이 2015년 8월 12일 질문

1개의 답변

0 추천
질문을 하고나면 제대로 올라갔는지 다시 확인하는 습관을 가지세요.

소스가 보기 어렵게 올라갔습니다.

 

오류는 파일 읽어오고, mediaplayer 에 넣는 부분에  try-catch 넣으면 해결될 겁니다.
쎄미 (162,410 포인트) 님이 2015년 8월 12일 답변
...