<?xml version="1.0" encoding="UTF-8" ?>
<rss version="0.91">
  <channel>
    <title>Androidアプリ開発のあれこれ</title>
    <description>Androidアプリ開発のUIやオーディオ関連の開発メモです。
調べたことを書いてきます。</description>
    <link>https://simplecode.blog.shinobi.jp/</link>
    <language>ja</language>
    <copyright>Copyright (C) NINJATOOLS ALL RIGHTS RESERVED.</copyright>

    <item>
      <title>test</title>
      <description>test</description> 
      <link>https://simplecode.blog.shinobi.jp/%E6%9C%AA%E9%81%B8%E6%8A%9E/test</link> 
    </item>
    <item>
      <title>メソッドに説明文を付ける</title>
      <description>&lt;a target=&quot;_blank&quot; href=&quot;http://file.simplecode.blog.shinobi.jp/pic20150423.png&quot; title=&quot;&quot;&gt;&lt;img src=&quot;http://file.simplecode.blog.shinobi.jp/Img/1429773636/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
この画像のような説明文を自作のメソッドにも付ける方法です。説明文を表示するにはメソッドを選択して&lt;span style=&quot;color: #ff0000;&quot;&gt;【ctrl + Q】&lt;/span&gt;です。&lt;br /&gt;
以下のようなメソッドを作ったとします。
&lt;pre class=&quot;brush: java;&quot;&gt;    private int hoge(int A, int B){
        return A+B;
    }
&lt;/pre&gt;
&lt;br /&gt;
ここで private int hoge.... の上に&amp;nbsp;&lt;span style=&quot;color: #ff0000; font-size: x-large;&quot;&gt;/**&lt;/span&gt;&amp;nbsp;を入力しEnterをクリックすると&lt;br /&gt;
&lt;br /&gt;
&lt;a target=&quot;_blank&quot; href=&quot;http://file.simplecode.blog.shinobi.jp/pic201504032.png&quot; title=&quot;&quot;&gt;&lt;img src=&quot;http://file.simplecode.blog.shinobi.jp/Img/1429776071/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
この様に自動生成されます。&lt;br /&gt;
後は好きな様に書けば出来上がりです。コメント記述はhtmlなので、改行したい場合は&amp;lt;br/&amp;gt;などのhtmlタグを使用すればOK！&lt;br /&gt;
&lt;br /&gt;
</description> 
      <link>https://simplecode.blog.shinobi.jp/android%20studio/%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%81%AB%E8%AA%AC%E6%98%8E%E6%96%87%E3%82%92%E4%BB%98%E3%81%91%E3%82%8B</link> 
    </item>
    <item>
      <title>ContentResolverでソート・絞り込み検索の条件を追加する方法</title>
      <description>&lt;pre class=&quot;brush: java;&quot;&gt;mCursor = mContentResolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
                    columns//項目
                    , null//絞り込み条件
                    , null//絞り込みパラメータ
                    , null//ソート
            );
&lt;/pre&gt;
&lt;br /&gt;
これは、&lt;a href=&quot;http://simplecode.blog.shinobi.jp/%E3%82%B5%E3%82%A6%E3%83%B3%E3%83%89%E9%96%A2%E9%80%A3/contentresolver%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%82%AA%E3%83%BC%E3%83%87%E3%82%A3%E3%82%AA%E3%83%87&quot; title=&quot;&quot;&gt;前回紹介した&lt;/a&gt;基本的な使い方です。前回のコードを変更すれば、使い方がわかるかと思います。今回はソート・絞り込み検索の条件を追加する方法を紹介します。&lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;&lt;span size=&quot;4&quot; style=&quot;font-size: large;&quot;&gt;ソート&lt;/span&gt;&lt;br /&gt;
&lt;hr /&gt;バラバラな順序で取得されている情報をABC順で取得します。ContentResolver.queryの5番目の引数を変更します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;pre class=&quot;brush: java;&quot;&gt;//リストビューに曲のタイトルを表示しているため&quot;title&quot;でソートする。
//アーティストのソートの場合は&quot;artist&quot;など
String sortOrder = &quot;title&quot;;
mContentResolver = getContentResolver();
mCursor = mContentResolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
          columns
          , null
          , null
          , sortOrder
);
&lt;/pre&gt;
&lt;a target=&quot;_blank&quot; href=&quot;http://file.simplecode.blog.shinobi.jp/device-2015-04-17-173932.png&quot; title=&quot;&quot;&gt;&lt;img src=&quot;http://file.simplecode.blog.shinobi.jp/Img/1429260039/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;&lt;span style=&quot;font-size: large;&quot;&gt;絞り込み検索&lt;/span&gt;&lt;br /&gt;
&lt;hr /&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;絞り込み検索はContentResolver.queryの3番目の引数を変更します。例として、アーティスト名で絞り込みをします。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;pre class=&quot;brush: java;&quot;&gt;String ArtistName = &quot;Bruno Mars&quot;;
String selection = &quot;artist='&quot; + ArtistName + &quot;'&quot;;
mContentResolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
　　　columns
　　　, selection
　　　, null
　　　, null
);
&lt;/pre&gt;
&lt;a target=&quot;_blank&quot; href=&quot;http://file.simplecode.blog.shinobi.jp/device-2015-04-17-180346.png&quot; title=&quot;&quot;&gt;&lt;img src=&quot;http://file.simplecode.blog.shinobi.jp/Img/1429261453/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
</description> 
      <link>https://simplecode.blog.shinobi.jp/%E3%82%B5%E3%82%A6%E3%83%B3%E3%83%89%E9%96%A2%E9%80%A3/contentresolver%E3%81%A7%E3%82%BD%E3%83%BC%E3%83%88%E3%83%BB%E7%B5%9E%E3%82%8A%E8%BE%BC%E3%81%BF%E6%A4%9C%E7%B4%A2</link> 
    </item>
    <item>
      <title>ContentResolverを使用してオーディオファイルの情報を取得する</title>
      <description>端末に保存されているオーディオデータをContentResolverを使用して取得し、リストビューに表示する方法です。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #ff6600;&quot;&gt;MainActivity.java&lt;/span&gt;
&lt;pre class=&quot;brush: java;&quot;&gt;public class MainActivity extends ActionBarActivity implements AdapterView.OnItemClickListener {

    private List&amp;lt;Map&amp;lt;String, String&amp;gt;&amp;gt; mSongDataList = new ArrayList&amp;lt;Map&amp;lt;String, String&amp;gt;&amp;gt;();
    private Handler mHandler;
    private SongViewThread mSongViewThread;
    private ListView mSongListView;

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

        mHandler = new Handler();
        mSongDataList.clear();

        mSongListView = (ListView) findViewById(R.id.listView);
        mSongListView.setOnItemClickListener(this);

        mSongViewThread = new SongViewThread();
        mSongViewThread.start();
    }&lt;br /&gt;



    @Override
    public void onItemClick(AdapterView&amp;lt;?&amp;gt; adapterView, View view, int i, long l) {
       
        Map&amp;lt;String, String&amp;gt; temp = mSongDataList.get(i);
        Log.d(TAG, temp.get(&quot;title&quot;));
        Log.d(TAG, temp.get(&quot;data&quot;));
        Log.d(TAG, temp.get(&quot;duration&quot;));
    }&lt;br /&gt;


&lt;br /&gt;


// オーディオ情報を取得し、リストビューに表示させるスレッド
    private class SongViewThread extends Thread {

        ContentResolver mContentResolver;
        Cursor mCursor;&lt;br /&gt;

　　　　//取得したい情報をここに
        String[] columns = new String[]{MediaStore.Audio.Media.TITLE,
                MediaStore.Audio.Media.DATA, MediaStore.Audio.Media.DURATION};
        String tempSong, tempSongPath, tempDuration;

        public void run() {

            mContentResolver = getContentResolver();
            mCursor = mContentResolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
                    columns, null, null, null);

            while (mCursor.moveToNext()) {
                tempSong = mCursor.getString(mCursor.getColumnIndex(MediaStore.Audio.Media.TITLE));
                tempSongPath = mCursor.getString(mCursor.getColumnIndex(MediaStore.Audio.Media.DATA));
                tempDuration = mCursor.getString(mCursor.getColumnIndex(MediaStore.Audio.Media.DURATION));

                Map&amp;lt;String, String&amp;gt; tempMap = new HashMap&amp;lt;String, String&amp;gt;();
                tempMap.put(&quot;title&quot;, tempSong);
                tempMap.put(&quot;data&quot;, tempSongPath);
                tempMap.put(&quot;duration&quot;, tempDuration);

                mSongDataList.add(tempMap);
            }

            mHandler.post(new Runnable() {
                // run()の中の処理はメインスレッドで動作
                public void run() {
                    SimpleAdapter adapter;
                    adapter = new SimpleAdapter(getApplicationContext(), mSongDataList,
                            R.layout.custom_listview, new String[]{&quot;title&quot;}, new int[]{
                            R.id.song_name}) {
                    };
                    mSongListView.setAdapter(adapter);
                }
            });
        }
    }
}
&lt;/pre&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #ff6600;&quot;&gt;activity_main.xml&lt;/span&gt;
&lt;pre class=&quot;brush: xml;&quot;&gt;&lt;relativelayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; xmlns:tools=&quot;http://schemas.android.com/tools&quot; android:layout_width=&quot;match_parent&quot; android:layout_height=&quot;match_parent&quot; android:paddingleft=&quot;@dimen/activity_horizontal_margin&quot; android:paddingright=&quot;@dimen/activity_horizontal_margin&quot; android:paddingtop=&quot;@dimen/activity_vertical_margin&quot; android:paddingbottom=&quot;@dimen/activity_vertical_margin&quot; tools:context=&quot;.MainActivity&quot;&gt;

    &lt;listview android:layout_width=&quot;match_parent&quot; android:layout_height=&quot;match_parent&quot; android:id=&quot;@+id/listView&quot; android:layout_centervertical=&quot;true&quot; android:layout_alignparentleft=&quot;true&quot; android:layout_alignparentstart=&quot;true&quot;&gt;
&lt;/listview&gt;&lt;/relativelayout&gt;

&lt;/pre&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #ff6600;&quot;&gt;custom_listview.xml&lt;/span&gt;
&lt;pre class=&quot;brush: xml;&quot;&gt;&lt;!--?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?--&gt;
&lt;linearlayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; android:orientation=&quot;vertical&quot; android:layout_width=&quot;match_parent&quot; android:layout_height=&quot;match_parent&quot;&gt;

&lt;linearlayout android:orientation=&quot;horizontal&quot; android:layout_width=&quot;match_parent&quot; android:layout_height=&quot;wrap_content&quot; android:layout_gravity=&quot;center_horizontal&quot; android:layout_margin=&quot;12dp&quot; android:gravity=&quot;center_vertical&quot;&gt;

    &lt;textview android:layout_width=&quot;wrap_content&quot; android:layout_height=&quot;wrap_content&quot; android:textappearance=&quot;?android:attr/textAppearanceMedium&quot; android:text=&quot;Medium Text&quot; android:id=&quot;@+id/song_name&quot; android:textcolor=&quot;#000000&quot; android:layout_gravity=&quot;center_vertical&quot; android:gravity=&quot;center_vertical&quot;&gt;
&lt;/textview&gt;&lt;/linearlayout&gt;
&lt;/linearlayout&gt;
&lt;/pre&gt;
&lt;br /&gt;
これを実行するとこのように表示されます。&lt;br /&gt;
&lt;a target=&quot;_blank&quot; href=&quot;http://file.simplecode.blog.shinobi.jp/device-2015-04-16-091722.png&quot; title=&quot;&quot;&gt;&lt;img src=&quot;http://file.simplecode.blog.shinobi.jp/Img/1429145819/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
項目をクリックすれば、ログに曲の保存先などの情報が出力されます。&lt;br /&gt;
&lt;br /&gt;
次回に取得する情報にフィルタかけたり、ソートする方法を紹介します。</description> 
      <link>https://simplecode.blog.shinobi.jp/%E3%82%B5%E3%82%A6%E3%83%B3%E3%83%89%E9%96%A2%E9%80%A3/contentresolver%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%82%AA%E3%83%BC%E3%83%87%E3%82%A3%E3%82%AA%E3%83%87</link> 
    </item>
    <item>
      <title>Android端末のSQLite(MediaStore)を確認する。</title>
      <description>Android端末内に保存されているSQLite(MediaStore)を確認する方法を紹介します。&lt;br /&gt;
&lt;br /&gt;
MediaStoreの情報にアクセスするためには、&lt;span style=&quot;color: #ff0000;&quot;&gt;端末のroot化が必要&lt;/span&gt;です。root化の方法は各自でお調べ下さい。&lt;br /&gt;
次に、SQLiteを確認するアプリをインストールします。私は&lt;a href=&quot;https://play.google.com/store/apps/details?id=dk.andsen.asqlitemanager&amp;amp;hl=ja&quot; title=&quot;&quot;&gt;aSQLiteManager&lt;/a&gt;を使用させていただきました。&lt;br /&gt;
&lt;br /&gt;
最後にMediaStoreの情報が保存されている場所です。&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;&lt;span style=&quot;font-size: large;&quot;&gt;/data/data/com.android.providers.media/databases/internal.db&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 14px;&quot;&gt;このdbファイルを&lt;/span&gt;aSQLiteManagerで開き&lt;br /&gt;
&lt;br /&gt;
&lt;a target=&quot;_blank&quot; href=&quot;http://file.simplecode.blog.shinobi.jp/device-2015-04-15-101515.png&quot; title=&quot;&quot;&gt;&lt;img src=&quot;http://file.simplecode.blog.shinobi.jp/Img/1429060558/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
Viewsタブのaudioをタップすると&lt;br /&gt;
&lt;br /&gt;
&lt;a target=&quot;_blank&quot; href=&quot;http://file.simplecode.blog.shinobi.jp/device-2015-04-15-095138.png&quot; title=&quot;&quot;&gt;&lt;img src=&quot;http://file.simplecode.blog.shinobi.jp/Img/1429060629/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
このようにMediaStoreの情報を見ることができます。&lt;br /&gt;
&lt;br /&gt;
場所は端末によって変わるかもしてません。Nexus7 2013で確認出来ました。</description> 
      <link>https://simplecode.blog.shinobi.jp/%E6%9C%AA%E9%81%B8%E6%8A%9E/android%E7%AB%AF%E6%9C%AB%E3%81%AEsqlite-mediastor</link> 
    </item>
    <item>
      <title>端末に保存されているオーディオファイルを一覧表示する</title>
      <description>端末に保存されている全てのオーディオファイルを一覧表示するためには、&lt;span color=&quot;#ff0000&quot; style=&quot;color: #ff0000;&quot;&gt;ContentResolver&lt;/span&gt;を使います。&lt;br /&gt;
ContentResolverは保存されているオーディオファイルのタイトルやアーティスト名など様々な情報を取得することが可能です。&lt;br /&gt;
&lt;br /&gt;
取得可能な情報（よく使いそうなもの）&lt;br /&gt;
&lt;br /&gt;

&lt;table border=&quot;1&quot; align=&quot;center&quot; style=&quot;width: 450px; height: 216px;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ALBUM&lt;/td&gt;
&lt;td&gt;アルバム情報&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ARTIST&lt;/td&gt;
&lt;td&gt;アーティスト情報&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DATA&lt;/td&gt;
&lt;td&gt;ファイルの保存先&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TITLE&lt;/td&gt;
&lt;td&gt;曲のタイトル&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DURATION&lt;/td&gt;
&lt;td&gt;ファイルの長さ[ms]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ALBUM_ART&lt;/td&gt;
&lt;td&gt;アルバム・ジャケット&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
取得することができる情報は以下の&lt;a href=&quot;https://developer.android.com/reference/android/provider/MediaStore.html&quot; title=&quot;&quot;&gt;Android公式ドキュメント&lt;/a&gt;でご確認下さい。&lt;br /&gt;
簡単な例は&lt;a href=&quot;http://simplecode.blog.shinobi.jp/%E3%82%B5%E3%82%A6%E3%83%B3%E3%83%89%E9%96%A2%E9%80%A3/contentresolver%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%82%AA%E3%83%BC%E3%83%87%E3%82%A3%E3%82%AA%E3%83%87&quot; title=&quot;&quot;&gt;こちら&lt;/a&gt;を見て下さい。&lt;br /&gt;
</description> 
      <link>https://simplecode.blog.shinobi.jp/%E3%82%B5%E3%82%A6%E3%83%B3%E3%83%89%E9%96%A2%E9%80%A3/%E7%AB%AF%E6%9C%AB%E3%81%AB%E4%BF%9D%E5%AD%98%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%82%AA%E3%83%BC%E3%83%87%E3%82%A3%E3%82%AA%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E4%B8%80%E8%A6%A7%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B</link> 
    </item>
    <item>
      <title>MediaPlayerでの音の再生</title>
      <description>MediaPlayerはリソースファイル・インターネット経由の再生もできますが、今回は端末内に保存されたオーディオファイルを再生する方法を紹介します。&lt;br /&gt;
&lt;br /&gt;

&lt;pre class=&quot;brush: java;&quot;&gt;protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        MediaPlayer mMediaPlayer;
        //再生オーディオファイルのパス
        String path = Environment.getExternalStorageDirectory()
                + &quot;/music/Blank Space.mp3&quot;;

        mMediaPlayer = new MediaPlayer();
        try {
            //再生ファイルのセット
            mMediaPlayer.setDataSource(path);
            mMediaPlayer.prepare();
        } catch (IOException e) {
            e.printStackTrace();
        }
        //再生開始
        mMediaPlayer.start();
    }&lt;/pre&gt;
onCreate内に記述してますがタイミングはいつでもいいです。&lt;br /&gt;
また、ストレージを読み込むためAndroidManifest.xml内に&lt;br /&gt;
&lt;br /&gt;

&lt;pre class=&quot;brush: java;&quot;&gt;&lt;uses-permission android:name=&quot;android.permission.READ_EXTERNAL_STORAGE&quot;&gt;&lt;/uses-permission&gt;
&lt;/pre&gt;
を忘れずに追加して下さい。&lt;br /&gt;
&lt;br /&gt;
再生までの流れはとても簡単で、&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;setDataSource(String path)に再生するオーディオファイルパスを設定&lt;/li&gt;
&lt;li&gt;prepare() &amp;nbsp;再生の準備が完了&lt;/li&gt;
&lt;li&gt;start()　　再生スタート&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
3行で再生する事ができます。setDataSourceとprepare()はtry-catchで囲って下さい。ファイルが無かったり、Manifestの設定を忘れているとここでエラーが起こります。&lt;br /&gt;
&lt;br /&gt;
</description> 
      <link>https://simplecode.blog.shinobi.jp/%E3%82%B5%E3%82%A6%E3%83%B3%E3%83%89%E9%96%A2%E9%80%A3/mediaplayer%E3%81%A7%E3%81%AE%E9%9F%B3%E3%81%AE%E5%86%8D%E7%94%9F</link> 
    </item>
    <item>
      <title>Rendering Problems</title>
      <description>Android StudioのXML Designで、以下のようなエラーがでた。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;div&gt;&lt;em&gt;&amp;nbsp;Rendering Problems The following classes could not be found:&lt;/em&gt;&lt;/div&gt;
&lt;div&gt;&lt;em&gt;- android.support.v7.internal.widget.ActionBarOverlayLayout (Fix Build Path, Edit XML, Create Class)&lt;/em&gt;&lt;/div&gt;
&lt;div&gt;&lt;em&gt;&amp;nbsp;Tip: Try to build the project.&lt;br /&gt;
&lt;a target=&quot;_blank&quot; href=&quot;http://file.simplecode.blog.shinobi.jp/04f439ca.png&quot; title=&quot;&quot;&gt;&lt;img src=&quot;http://file.simplecode.blog.shinobi.jp/Img/1429149902/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/em&gt;API 22を使用すると出るエラーのよう。使用するAPIを21に変更したところエラーが消えデザイン画面が表示された。&lt;br /&gt;
&lt;a target=&quot;_blank&quot; href=&quot;http://file.simplecode.blog.shinobi.jp/problems2.png&quot; title=&quot;&quot;&gt;&lt;img src=&quot;http://file.simplecode.blog.shinobi.jp/Img/1429149915/&quot; alt=&quot;&quot; /&gt;&lt;/a&gt; &lt;/div&gt;</description> 
      <link>https://simplecode.blog.shinobi.jp/android%20studio/rendering%20problems</link> 
    </item>
    <item>
      <title>オーディオ再生するAPIのまとめ</title>
      <description>オーディオファイルを再生する手法として、以下の４つの方法があります。&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;MediaPlayer&lt;/li&gt;
&lt;li&gt;Sound&lt;/li&gt;
&lt;li&gt;AudioTrack&lt;/li&gt;
&lt;li&gt;OpenSL ES&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;hr /&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;MediaPlayer&lt;/span&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;hr /&gt;
&lt;div&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;音楽など長いファイルを再生するのに適したAPIです。端末に保存されているファイルやインターネット上のファイルを再生することができます。&lt;br /&gt;
単純に音楽を再生する場合（音楽プレイヤーなど）はこのAPIが一番簡単に実装することができます。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;hr /&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;SoundPool（SoundPool.Builder）&lt;/span&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;hr /&gt;効果や短い音楽がループするBGMを再生するのに適したAPIです。ファイルを予め読み込むため、再生までの遅延が少ないのが特徴です。長い音楽ファイルを再生することも可能ですが、ファイルを読み込む処理で時間がかかってしまいます。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;&lt;span style=&quot;font-size: large;&quot;&gt;AudioTrack&lt;/span&gt;&lt;br /&gt;
&lt;hr /&gt;音のPCMデータを再生することが可能なAPIです。プログラムで作成したデータやAudioRecorderで読み込んだデータを再生できます。&lt;br /&gt;
音の波形を表示したい場合やリアルタイムに処理をかけたい場合などに使うと思います。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;&lt;span style=&quot;font-size: large;&quot;&gt;OpenSL ES&lt;/span&gt;&lt;br /&gt;
&lt;hr /&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;ネイティブコード（NDK）で動作するAPIです。オーディオを再生・録音などが可能です。細かい設定を行うことができますが、資料が英語だったり情報が少ないため、実装に苦労するかと...&lt;br /&gt;
基本的にはMediaPlayerでいいと思いますが、MediaPlayerより低レベルな処理をしたい場合には使えるライブラリです。&lt;br /&gt;
機能としてはデコーダーなどがあります。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
各種APIの使い方は今後アップしていきます。&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;</description> 
      <link>https://simplecode.blog.shinobi.jp/%E3%82%B5%E3%82%A6%E3%83%B3%E3%83%89%E9%96%A2%E9%80%A3/%E3%82%AA%E3%83%BC%E3%83%87%E3%82%A3%E3%82%AA%E5%86%8D%E7%94%9F%E3%81%99%E3%82%8Bapi%E3%81%AE%E3%81%BE%E3%81%A8%E3%82%81</link> 
    </item>
    <item>
      <title>作ってみました</title>
      <description>ブログ&amp;amp;Android初心者のAndroid開発ブログです。&lt;br /&gt;
&lt;br /&gt;
AndroidのAPIなどを出来る限りわかりやすくまとめてみます。開発の参考になればいいです。&lt;br /&gt;
間違いやご質問等ありましたら気軽にコメントよろしくお願いします。</description> 
      <link>https://simplecode.blog.shinobi.jp/%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB/%E4%BD%9C%E3%81%A3%E3%81%A6%E3%81%BF%E3%81%BE%E3%81%97%E3%81%9F</link> 
    </item>

  </channel>
</rss>