I guess it depends on what you liked about Halo. If you had a blast running around in different vehicles, then BF4 is the game for you. An impressive array of vehicles from tanks, jeeps, helicopters, ships, jets, you name it you can fly it. Giant maps with lots of people fighting. You can also seriously alter the map by blowing up buildings or holes in walls to make new paths. If you're more into the streamlined fps experience like Halo though then COD might be for you. Less options, but also less chaos for you to wade through to get better.
For singleplayer I've only started BF4 so far. Impressive visuals and some amazingly epic scenes, but other than that just a mishmash of cliche action scenes. They may not seem as cliche to you if you've never played any of the modern warfare games, but overall the singleplayer is just ok. The reviews on COD singleplayer are fairly tepid as well.
Honestly if you want the best singleplayer experience get the first COD modern warfare, which I'm guessing you can get for cheap, then work forward from there.