Introduction
In this article we will learn about the music search task in Windows Phone 8. This task uses the Nokia Mixradio Launcher. It allows you to search for music, artists, tracks or albums using the Nokia MixRadio app.
Music Search Task
Use the following procedure to use this task in your application:
- First include a reference for the Nokia MixRadio API "Nokia.Music.Wp8.dll" in your project.
- Create a new music search task.
- Set the search term for which you want to perform the search.
- Finally show the task using the show method.
To create a new music search task:
MusicSearchTask task = new MusicSearchTask();
Now set the search term.
task.SearchTerms = "Midnight";
Finally use the show method to open the Nokia mix app and show the search results:
task.Show();
Music Search Task Example
XAML
<phone:PhoneApplicationPage
x:Class="Demo.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="Portrait" Orientation="Portrait"
shell:SystemTray.IsVisible="True">
<!--LayoutRoot is the root grid where all page content is placed-->
<Grid x:Name="LayoutRoot" Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<!--TitlePanel contains the name of the application and page title-->
<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
<TextBlock Text="Demo" Style="{StaticResource PhoneTextNormalStyle}" Margin="12,0"/>
<TextBlock Text="MixRadio Demo" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
</StackPanel>
<!--ContentPanel - place additional content here-->
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<TextBox Name="srchTxt" HorizontalAlignment="Left" Height="72" Margin="0,10,0,0" TextWrapping="Wrap" Text="Enter Search Term" VerticalAlignment="Top" Width="456"/>
<Button Content="Search" Click="SearchBtnClick" HorizontalAlignment="Left" Margin="268,87,0,0" VerticalAlignment="Top" Width="178"/>
</Grid>
</Grid>
</phone:PhoneApplicationPage>
C# Code Behind
In the following code I'm installing the Nugget Package Installer to install the Nokia MixRadio API in my application.
To install the MixRadio package in your project use the following command line:
PM> Install-Package NokiaMusic
After successful installation you will see the log similar to this:
Attempting to resolve dependency 'SharpGIS.GZipWebClient (≥ 1.4.0.0)'.
Attempting to resolve dependency 'Newtonsoft.Json (≥ 5.0.6)'.
Installing 'SharpGIS.GZipWebClient 1.4.0.0'.
Successfully installed 'SharpGIS.GZipWebClient 1.4.0.0'.
Installing 'Newtonsoft.Json 5.0.6'.
Successfully installed 'Newtonsoft.Json 5.0.6'.
Installing 'NokiaMusic 3.2.0'.
Successfully installed 'NokiaMusic 3.2.0'.
Adding 'SharpGIS.GZipWebClient 1.4.0.0' to Demo.
Successfully added 'SharpGIS.GZipWebClient 1.4.0.0' to Demo.
Adding 'Newtonsoft.Json 5.0.6' to Demo.
Successfully added 'Newtonsoft.Json 5.0.6' to Demo.
Adding 'NokiaMusic 3.2.0' to Demo.
Successfully added 'NokiaMusic 3.2.0' to Demo.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;
using Demo.Resources;
namespace Demo
{
public partial class MainPage : PhoneApplicationPage
{
// Constructor
public MainPage()
{
InitializeComponent();
}
privatevoid SearchBtnClick(object sender, RoutedEventArgs e)
{
Nokia.Music.Tasks.MusicSearchTask searchApp =new Nokia.Music.Tasks.MusicSearchTask();
searchApp.SearchTerms= srchTxt.Text.Trim();
searchApp.Show();
}
}
}
Output
Summary
That's all for this article. A future article will check the other methods of the MixRadio Launcher. In case of any doubt feel free to ask in the comments.